要计算数组中对象及其 included
对象中所有值的和,可以使用递归方法来遍历数组和对象。以下是一个示例代码,展示了如何实现这一功能:
function sumValues(obj) {
let sum = 0;
for (let key in obj) {
if (typeof obj[key] === 'number') {
sum += obj[key];
} else if (typeof obj[key] === 'object' && obj[key] !== null) {
sum += sumValues(obj[key]);
}
}
return sum;
}
function sumArrayObjects(arr) {
let totalSum = 0;
for (let item of arr) {
if (typeof item === 'object' && item !== null) {
totalSum += sumValues(item);
if (item.included && Array.isArray(item.included)) {
for (let includedItem of item.included) {
totalSum += sumValues(includedItem);
}
}
}
}
return totalSum;
}
// 示例数据
const data = [
{ a: 1, b: 2, included: [{ c: 3 }, { d: 4 }] },
{ e: 5, f: 6 },
{ g: 7, included: [{ h: 8 }] }
];
console.log(sumArrayObjects(data)); // 输出: 36
sumValues
函数。sumValues
函数计算其值的总和。如果对象包含 included
属性且该属性是数组,则遍历 included
数组中的每个对象,并递归调用 sumValues
函数计算其值的总和。这种计算方法适用于需要处理嵌套对象和数组的场景,例如:
WeakMap
来跟踪已经访问过的对象,避免重复访问。sumValues
函数中进行类型检查,只累加数字类型的值。希望这个解答对你有所帮助!
腾讯云存储专题直播
云+社区技术沙龙[第17期]
Game Tech
Game Tech
Game Tech
Game Tech
云+社区沙龙online [新技术实践]
云+社区沙龙online第5期[架构演进]
第四期Techo TVP开发者峰会
第四期Techo TVP开发者峰会
企业创新在线学堂
领取专属 10元无门槛券
手把手带您无忧上云