我想用陣列獲取物件中所有專案的總數。例如
const obj = {
one: [1, 4],
two: [4, 6]
}
我應該得到4個。
我試過
const obj = {
one: [1, 4],
two: [4, 6]
}
let total = 0;
const objKeys = Object.keys(obj);
for (let index = 0; index < objKeys.length; index ) {
total = obj[objKeys[index]].length
}
console.log(total);
有沒有更簡單的方法來做到這一點?
uj5u.com熱心網友回復:
您可以獲取物件的值,這將是以下形狀的陣列陣列:
[[1, 4], [4, 6]]
然后展平這個陣列.flat(),給出:
[1, 4, 4, 6];
然后抓住.length那個陣列的。
請參見下面的示例:
const obj = {one: [1, 4],two: [4, 6]};
const res = Object.values(obj).flat().length;
console.log(res);
請注意,如果您的目標是提高效率,您可以使用標準for...in回圈來回圈物件的鍵,然后添加到total如下所示的 like。這也避免了創建額外陣列來存盤鍵/值的開銷:
const obj = {one: [1, 4], two: [4, 6]};
let total = 0;
for(const key in obj)
total = obj[key].length;
console.log(total);
uj5u.com熱心網友回復:
reduce()onObject.values(obj)非常合適:
const obj = {
one: [1, 4],
two: [4, 6]
}
let total = Object.values(obj).reduce((prev, cur) => prev cur.length, 0);
console.log(total); // 4
uj5u.com熱心網友回復:
const obj = {
one: [1, 4],
two: [4, 6]
}
let total = 0;
Object.keys(obj).forEach(element => { total = obj[element].length } )
console.log(total);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/467436.html
標籤:javascript 数组
