我有像這樣的大型嵌套 json 物件,我想計算整個物件中寵物的數量。怎樣才能做到這一點?我已經厭倦了Object.keys(obj[0]).length但沒有成功達到預期的結果。另外,如何更深入地計算陣列以計算一些嵌套值,例如pet中的顏色?
在 JavaScript 或 Angular 中使用多級陣列的好教程是什么?
obj = [
{
"person": {
"name": "a",
},
"pet": {
"name": "1"
}
},
{
"person": {
"name": "b",
},
"pet": {
"name": "2",
"color": "black",
}
},
{
"person": {
"name": "c",
},
"pet": {
"name": "3",
"color": "red",
}
}
]
uj5u.com熱心網友回復:
let pets = 0;
obj.map( item => {
if(item.pet) {
pets = 1;
}
})
uj5u.com熱心網友回復:
使用寵物屬性和寵物的顏色屬性過濾陣列并執行陣列計數。
let obj = [
{
"person": {
"name": "a",
},
"pet": {
"name": "1"
}
},
{
"person": {
"name": "b",
},
"pet": {
"name": "2",
"color": "black",
}
},
{
"person": {
"name": "c",
},
"pet": {
"name": "3",
"color": "red",
}
}
];
let petItemCount = obj.filter(x => x["pet"]).length;
console.log(petItemCount);
let petItemWithColorCount = obj.filter(x => x["pet"] && x["pet"]["color"]).length;
console.log(petItemWithColorCount);
如果pet值可能是null或寵物的color可能為空,
let petItemCount = obj.filter(x => x["pet"] != undefined).length;
console.log(petItemCount);
let petItemWithColorCount = obj.filter(x => x["pet"] && x["pet"]["color"] != undefined).length;
console.log(petItemWithColorCount);
uj5u.com熱心網友回復:
聽起來減少是合適的:
colors = obj.reduce(
(sum, { pet }) => pet.color !== undefined ? sum : sum,
0)); // -> initial count value
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/485626.html
標籤:javascript json 有角度的
上一篇:不透明度角度上的CSS過渡
