添加对象数组中包含的值
Adding values contained in an array of objects
如何添加对象中的所有值?
例如,amoutpay": ["4222","1000"]
会给我5222
这是我的目标:
{
"amoutpay": [ "4222", "1000" ],
"amtpending": [ "778", "4000" ],
"totalcost": [ "5000", "5000" ],
"coursename": [ "Office Automation", "ajaba" ]
}
我想要的是将值添加到变量中。我会使用拆分吗?
var a =
var b =
var c =
您可以使用Array.prototype.reduce()
,如下所示:
var obj = {
"amoutpay": [ "4222", "1000" ],
"amtpending": [ "778", "4000" ],
"totalcost": [ "5000", "5000" ],
"coursename": [ "Office Automation", "ajaba" ]
},
a = obj.amoutpay.reduce(function(prevVal, curVal, curInd) {
return +prevVal + +curVal;
}),
b = obj.amtpending.reduce(function(prevVal, curVal, curInd) {
return +prevVal + +curVal;
}),
c = obj.totalcost.reduce(function(prevVal, curVal, curInd) {
return +prevVal + +curVal;
});
console.log( a, b, c );
或者你可以更进一步,定义你自己的数组方法,例如Array.prototype.sum()
:
var obj = {
"amoutpay": [ "4222", "1000" ],
"amtpending": [ "778", "4000" ],
"totalcost": [ "5000", "5000" ],
"coursename": [ "Office Automation", "ajaba" ]
};
Array.prototype.sum = function() {
return this.reduce(function( prv, cur, ind ) {
return +prv + +cur;
});
};
var a = obj.amoutpay.sum(),
b = obj.amtpending.sum(),
c = obj.totalcost.sum();
console.log( a, b, c );
var obj = {
"amoutpay": [ "4222", "1000" ],
"amtpending": [ "778", "4000" ],
"totalcost": [ "5000", "5000" ],
"coursename": [ "Office Automation", "ajaba" ]
}
var a = addValues(obj.amoutpay);
function addValues(arr) {
return arr.map(function(el) {
return Number(el);
}).reduce(function(prev, curr){
return prev + curr;
})
}
我们迭代对象元素,对于所有数组,我们检查所有元素是否都是数字。如果是,那么将它们作为变量添加到window
对象中,因此在循环之后,我们将为问题中显示的输入提供一个amoutpay
变量。注意,如果key
恰好已经是一个变量,那么此代码将覆盖它
for (var key in obj) {
if (Array.isArray(obj[key])) {
var shouldAdd = true;
for (var index = 0; shouldAdd && index < obj[key].length; index++) {
if (isNaN(obj[key][index])) {
shouldAdd = false;
}
}
if (shouldAdd) {
window[key] = 0;
for (var index = 0; index < obj[key].length; index++) {
window[key] += parseFloat(obj[key][index]);
}
}
}
}
相关文章:
- 如何遍历包含对象的数组-javascript
- 如何确定对象内部包含对象的JSON的长度
- 对包含对象的JSON对象进行排序
- 如何使用Typescript创建一个包含对象的字段的新对象
- JS函数返回一个包含对象的数组
- 如何对姓氏进行排序,格式化电话号码,并返回一个包含对象数组值的字符串
- 当在JSON中使用包含对象的对象与对象数组时,可接受的约定是什么
- 如何加载包含对象对象的 JSON 文件的每个部分
- 如何从动态包含对象的变量生成对象数组
- 根据另一个包含角度 js 中对象的数组过滤包含对象的数组
- 将对象转换为包含对象作为元素 0 的数组
- 如何使用包含对象键名的变量访问对象属性
- 从包含对象的数组中查找最小值的最佳方法
- 使函数返回一个包含对象的数组
- 当 JSDoc 是包含对象的数组时,文档变量如何
- 使用对象对数组进行切片,并获取包含对象副本的数组
- AngularJS从包含对象的数组中过滤掉
- 如何将包含对象而不是字符串的正文发布到 HTTP API?棱角2.
- 如何在不使用JQuery的情况下查看数组是否包含对象
- 试图循环遍历包含包含对象的数组的数组,以匹配数据