JavaScript 数组分组:根据字段值创建新二维数组
以下是一个示例代码,可以根据二维数组中的某个字段生成一个新的二维数组:
var arr = [
{ name: 'John', age: 25, city: 'New York' },
{ name: 'Mary', age: 30, city: 'Boston' },
{ name: 'Bob', age: 28, city: 'New York' },
{ name: 'Alice', age: 35, city: 'Boston' },
{ name: 'David', age: 22, city: 'Chicago' }
];
var result = [];
for (var i = 0; i < arr.length; i++) {
var found = false;
for (var j = 0; j < result.length; j++) {
if (result[j].city === arr[i].city) {
found = true;
result[j].people.push(arr[i]);
break;
}
}
if (!found) {
result.push({ city: arr[i].city, people: [arr[i]] });
}
}
console.log(result);
在这个示例中,我们根据每个人所在的城市生成一个新的二维数组。我们首先定义一个名为 result 的空数组,然后遍历原始数组 arr 中的每个元素。对于每个元素,我们检查它所在的城市是否已经在 result 数组中存在。如果存在,我们将该元素添加到该城市的 people 数组中。如果不存在,我们创建一个新的对象,该对象包含城市名称和一个名为 people 的数组,将该元素添加到该数组中,并将该对象添加到 result 数组中。
最后,我们打印 result 数组,它应该包含一个包含每个城市和居民的数组。
原文地址: https://www.cveoy.top/t/topic/n8vl 著作权归作者所有。请勿转载和采集!