我有一个对象数组,如下所示:
{value: 20, color: 'F88C00'},
{value: 40, color: 'D8605F'},
{value: 20, color: '72C380'},
{value: 20, color: '2C7282'},
{value: 20, color: '72C380'}
Run Code Online (Sandbox Code Playgroud)
我想使用javascript/jquery循环遍历它们以检查颜色列中是否有任何重复项,如果有重复项,则此处"72C380"出现两次.然后应该只有一个条目,但它们的值应该相加.
期望的输出:
{value: 20, color: 'F88C00'},
{value: 40, color: 'D8605F'},
**{value: 40, color: '72C380'},**
{value: 20, color: '2C7282'}
Run Code Online (Sandbox Code Playgroud)
我知道如何在python中做到这一点,但不知道JS
你可以像这样使用临时地图
var array = [{
value: 20,
color: 'F88C00'
}, {
value: 40,
color: 'D8605F'
}, {
value: 20,
color: '72C380'
}, {
value: 20,
color: '2C7282'
}, {
value: 20,
color: '72C380'
}];
var op = [],
map = {}, it, item;
for (var i = 0; i < array.length; i++) {
it = array[i];
item = map[it.color];
if (item) {
item.value += it.value;
} else {
map[it.color] = item = {
value: it.value,
color: it.color
};
op.push(item);
}
}
console.log(op)
Run Code Online (Sandbox Code Playgroud)
演示:小提琴
| 归档时间: |
|
| 查看次数: |
2911 次 |
| 最近记录: |