在下面的代码中newData打印如下
var newData =(JSON.parse(jobData));
console.log(newData);
目前它包含5个值。可能会有变化
[{
mode: daily,
id: '71'
os: 'Win37'
}, {
mode: daily,
id: '45'
os: 'Win37-1'
}, {
mode: daily,
id: '37'
os: 'Win64'
}, {
mode: daily,
id: '86'
os: 'Win37'
},{
mode: daily,
id: '7'
os: 'Win64' ];
从上面的json数组我必须创建这样的数组怎么可能?
即使用不同的os
创建相同的'Win37'
id
。如果存在重复的os
,则将其ids
组合如下
MynewArray = [{
mode: daily,
id: '71,86'
os: 'Win37'
}, {
mode: daily,
id: '45'
os: 'Win37-1'
}, {
mode: daily,
id: '37,7'
os: 'Win64'
}];
答案 0 :(得分:1)
您的代码中存在语法错误,缺少,
和mode
值的引号,修复错误后,您可以尝试以下neu
数组的id
属性是数组,o
这里指的是原始数组。
var neu = [], l = o.length;
for (var i = 0; i < l; i++) {
var f = neu.filter(function(e, _) {
return e.os === o[i].os;
});
if (f.length) {
f[0].id.push(o[i].id);
} else {
neu.push({
os: o[i].os,
id: [o[i].id],
mode: o[i].mode
});
}
}