数组根据元素相同value的key值进行归类

let arr = [
    { "id": "1001", "name": "值1", "value": "111" },
    { "id": "1001", "name": "值1", "value": "11111" },
	{ "id": "1002", "name": "值2", "value": "25462" },
	{ "id": "1002", "name": "值2", "value": "23131" },
	{ "id": "1002", "name": "值2", "value": "2315432" },
	{ "id": "1003", "name": "值3", "value": "333333" }
];

let map = {}, expectData = [];
for (let i = 0; i < arr.length; i++) {
  let ai = arr[i];
  if (!map[ai.id]) {
    expectData.push({
      id: ai.id,
      name: ai.name,
      data: [ai]
    });
		map[ai.id] = ai;
	} else {
		for (let j = 0; j < expectData.length; j++) {
			let dj = expectData[j];
			if (dj.id == ai.id) {
				dj.data.push(ai);
				break;
			}
		}
	}
}

console.log(expectData);

 

你可能感兴趣的:(数组根据元素相同value的key值进行归类)