今天开发遇到了个这样的需求 整理一下
let array = [
{
pricesetNprice: 50,
pricesetPrefprice: 90,
pricesetRefrice: 0,
pricesetType: '',
productareaName: null,
refundFlag: 0,
sendgoodsBatch1: 111,
sendgoodsBatch2: 222,
sendgoodsBatch3: 333,
...
...
},
]
我想计算数组里面所有包含 sendgoodsBatch的key值的和 sendgoodsBatch有n个
解:
function getSum(arr, key) {
let sum = 0;
arr.forEach((item) => {
Object.keys(item).forEach((i) => {
if (i.includes(key)) {
console.log(item[i]);
sum = sum + item[i];
}
});
});
return sum;
}
let a = getSum(array, "sendgoodsBatch");
console.log(a);
敲黑板画重点啦!!!!!!
这里用到了 Object.keys的用法补习一下:
ES5 引入了Object.keys方法,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键名。
传入对象,返回属性名
var data={a:aaa,b:bbb,c:ccc,d:ddd,e:eee};
console.log(Object.keys(data));//["a", "b", "c", "d", "e"]
Object.keys(data).map((key,item)=>{
console.log(key,data[key]);//key=>属性名 data[key]=>属性值
});
传入字符串,返回索引
var str = '1234';
console.log(Object.keys(obj)); //[0,1,2,3]
传入数组 返回索引
var arr = ["a", "b", "c"];
console.log(Object.keys(arr)); // console: ["0", "1", "2"]
OK~~散会