根据一个相同key值修改数据可使用格式类型
原数据
var data = [
[“小数1”, 1, “数据1”],
[“小数1”, 1, “数据1”],
[“小数1”, 1, “数据1”],
[“小数2”, 2, “数据2”],
[“小数2”, 2, “数据2”],
[“小数3”, 3, “数据3”],
[“小数3”, 3, “数据3”],
[“小数3”, 3, “数据3”],
];
修改后的数据
完整代码:
<script>
var data = [
["小数1", 1, "数据1"],
["小数1", 1, "数据1"],
["小数1", 1, "数据1"],
["小数2", 2, "数据2"],
["小数2", 2, "数据2"],
["小数3", 3, "数据3"],
["小数3", 3, "数据3"],
["小数3", 3, "数据3"],
];
var dataObj = [],
map = {},
dest = [];
for (var i = 0; i < data.length; i++) {
dataObj.push({
id: data[i][0],
name: data[i][1],
value: data[i][2],
});
}
for (var i = 0; i < dataObj.length; i++) {
var ai = dataObj[i];
if (!map[ai.id]) {
dest.push({
id: ai.id,
name: ai.name,
data: [ai],
});
map[ai.id] = ai;
} else {
for (var j = 0; j < dest.length; j++) {
var dj = dest[j];
if (dj.id == ai.id) {
dj.data.push(ai);
break;
}
}
}
}
console.log(dest);
</script>