var items = [
{name: "one",amount: 14},
{name: "two",amount: 14},
{name: "one",amount: 11},
{name: "two",amount: 2}
];
var items=[
{name:"one",amount:25},
{name:"two",amount:16}
];
上面得数组怎么进行循环判断才能 得到 下面得数组呢 (amount 是 相同得name 相加) 我想了半天不知道如何判断 相同得名字name, amount 相加。
这个怎么做啊,我研究了好久,但没啥思路
var items = [
{ name: "one", amount: 14 },
{ name: "two", amount: 14 },
{ name: "one", amount: 11 },
{ name: "two", amount: 2 }
];
var kv = {},i
for (var i = 0; i < items.length; i++) kv[items[i].name] = (kv[items[i].name] || 0) + items[i].amount;
items = []
i = 0;
for (attr in kv) items[i++] = { name: attr, amount: kv[attr] }
console.log(items)
根据名字获取所有值,再split(“,”)获取相关数组,在相加
var items = [
{name: "one",amount: 14},
{name: "two",amount: 14},
{name: "one",amount: 11},
{name: "two",amount: 2}
];
var map = {}
for( var i in items){
var item = items[i];
map[item.name] =(map[item.name] || 0) + item.amount;
}
var items1 = []
for( var i in map){
var map1 = {};
map1[i] = map[i];
items1.push(map1)
}
alert(JSON.stringify(items1 ) );
给你个思路。
1.首先你有个数组
var items = [
{name: "one",amount: 14},
{name: "two",amount: 14},
{name: "one",amount: 11},
{name: "two",amount: 2}
];
2.其次你要有个结果数组var result=[];
3.初始一个对象var obj={};
4.循环items的同时循环result,
判断条件:如果items对象a的名字result中没有则把对象a插入result中,如果result存在a,则把a对象的amount值相加,
这里就是把名字不同的对象,插入result。
5,输出result.
var items = [
{name: "one",amount: 14},
{name: "two",amount: 14},
{name: "one",amount: 11},
{name: "two",amount: 2}
];
console.log(items[0]);
for(var i=items.length-1; i > 0; i--){
var data = items[i];
//console.log(i);
for(var j=i-1; j >= 0; j--){
var data_ = items[j];
if(data.name == data_.name){
console.log(data.name);
items[j].amount += data.amount;
items.splice(i,1);
break;
}
}
}
console.log(items);
妹子试试,可以关注我哦
拿去你的正确答案