我想將與測驗具有相同 id 的多個物件轉換為物件陣列
實際的:
const array= [
{ "test": 1},
{ "test": 2},
{ "test": 3},
{ "test": 4},
]
預期的:
test: [1,2,3,4]
有人可以幫忙嗎
uj5u.com熱心網友回復:
只需使用本機方法映射(在此處或此處閱讀更多內容),如下所示:
const array= [
{ "test": 1},
{ "test": 2},
{ "test": 3},
{ "test": 4},
];
const newArray = array.map(p => p.test);
console.log(JSON.stringify(newArray)); //[1,2,3,4]
希望這會有所幫助.. ;D
uj5u.com熱心網友回復:
您可以為此https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map使用地圖功能:
const newarray = array.map(x => x.test);
console.log(newarray);
uj5u.com熱心網友回復:
const result = {};
yourArray.forEach( ( object ) => {
const keys = Object.keys( object );
for ( let i = 0; i < keys.length; i ) {
const key = keys[ i ];
if ( ! key in result ) {
result[ key ] = [];
}
result[key] = [...result[key], ...object[key] ];
}
});
console.log( result );
在這種情況下:
- 你需要在你的陣列中迭代
- 在每次迭代中,您都有一個新物件
- 從那里你迭代當前物件的所有鍵
- 如果結果中不存在該鍵,則創建一個新的空陣列
- 將結果中的值與物件的當前值合并。
- 值存盤在結果中。
uj5u.com熱心網友回復:
您可以映射物件中的值。
const
array = [{ test: 1 }, { test: 2 }, { test: 3 }, { test: 4 }],
values = array.flatMap(Object.values);
console.log(values);
uj5u.com熱心網友回復:
const arr = [
{ "test": 1 },
{ "test": 2 },
{ "test": 3 },
{ "test": 4 },
{ "test1": 1 },
{ "test1": 5 },
{ "test2": 6 }
];
const newArr = arr.reduce((acc, cur) => ({
...acc,
[Object.keys(cur)[0]]: (acc[Object.keys(cur)[0]] || []).concat(Object.values(cur)[0])
}), {});
console.log( newArr );
//{ "test": [1,2,3,4], "test1": [1,5], "test2": [6] }
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/404432.html
標籤:
上一篇:ReactNativeOnChange被觸發但不更新狀態
下一篇:在本機反應中初始化空物件陣列
