我只想回傳一個包含元素的第一個和第二個物件的陣列。
接下來的2個元素將在遍歷keys后重復
給定以下物件:
const object = {
a: [
{ name: "John", age: 32 },
{ name: "David", age: 23 },
{ name: "Justin", age: 28 },
{ name: "Arnauld", age: 35 }
],
b: [
{ name: "Ivan", age: 18 },
{ name: "Nekko", age: 13 },
{ name: "Lena", age: 25 }
],
c: [
{ name: "Ann", age: 19 },
{ name: "Nick", age: 14 }
]
};
我想要的結果是
[
{ name: "John", age: 32 },
{ name: "David", age: 23 },
{ name: "Ivan", age: 18 },
{ name: "Nekko", age: 13 },
{ name: "Ann", age: 19 },
{ name: "Nick", age: 14 },
{ name: "Justin", age: 28 },
{ name: "Arnauld", age: 35 },
{ name: "Lena", age: 25 }
]
uj5u.com熱心網友回復:
你可以使用 Object.values() 然后你可以使用 array.reduce() 來獲取期望值。
const object = {
a: [
{ name: "John", age: 32 },
{ name: "David", age: 23 },
{ name: "Justin", age: 28 },
{ name: "Arnauld", age: 35 }
],
b: [
{ name: "Ivan", age: 18 },
{ name: "Nekko", age: 13 },
{ name: "Lena", age: 25 }
],
c: [
{ name: "Ann", age: 19 },
{ name: "Nick", age: 14 }
]
};
let newArray = Object.values(object).reduce((prev, current) => ([...prev, ...current.slice(0,2)]),[]);
console.log(newArray)
uj5u.com熱心網友回復:
這給出了您要求的準確順序
const object = {
a: [
{ name: "John", age: 32 },
{ name: "David", age: 23 },
{ name: "Justin", age: 28 },
{ name: "Arnauld", age: 35 }
],
b: [
{ name: "Ivan", age: 18 },
{ name: "Nekko", age: 13 },
{ name: "Lena", age: 25 }
],
c: [
{ name: "Ann", age: 19 },
{ name: "Nick", age: 14 }
]
};
const result = Object.values(object).reduce((acc, cur) => {
const arr = cur.map((item, index) => {
return { ...item, index: Math.floor(index / 2) };
});
return [...acc, ...arr];
}, []).sort((a,b) => a.index - b.index);
console.log(result);
uj5u.com熱心網友回復:
const result = [];
for (const key in object) {
result.push(object[key][0]); // The first element
result.push(object[key][1]); // The second element
}
return result;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/493429.html
標籤:javascript 反应 数组 循环 目的
下一篇:根據下拉串列中的用戶選擇執行功能
