JavaScript 中的以下代碼:
const mixedObjects = [1,2,3].map(num => {
return { a: 'always same' }
});
回傳以下結果:
[
{a: 'always same'},
{a: 'always same'},
{a: 'always same'}
]
我想回傳以下內容而不在外面宣告一個空陣列然后推入它。因此,請在地圖內完成所有操作。這可能嗎?
我想回傳的內容:
[
{a: 'always same'},
{b: 1},
{a: 'always same'},
{b: 2},
{a: 'always same'},
{b: 3}
]
uj5u.com熱心網友回復:
使用Array.flatMap(), 并在每次迭代中回傳 2 個物件的元組。flatMap 將創建一個扁平化的物件陣列。
const mixedObjects = [1,2,3].flatMap(b => {
return [{ a: 'always same' }, { b }]
});
console.log(mixedObjects);
uj5u.com熱心網友回復:
您可以組合map和flat方法:
const mixedObjects = [1,2,3].map(num => {
return [{ a: 'always same' }, {b: num}];
}).flat();
PS 或者使用flatMapOri Drori 建議的方法。
uj5u.com熱心網友回復:
...reduce基于解決方案也有效...
console.log(
[1,2,3].reduce((result, b) =>
[...result, { a: 'always same' }, { b }] , []
)
);
console.log(
[1,2,3].reduce((result, b) =>
result.concat({ a: 'always same' }, { b }), []
)
);
console.log(
[1,2,3].reduce((result, b) => {
result.push({ a: 'always same' }, { b });
return result;
}, [])
);
.as-console-wrapper { min-height: 100%!important; top: 0; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315454.html
標籤:javascript 数组 循环 字典 目的
