1.如果你想将具有相同名称的对象分别放入不同的数组中,你可以使用 JavaScript 中的 reduce()
方法来实现。在每次迭代过程中,检查当前对象的名称是否已存在于结果数组中,如果存在,则将当前对象添加到对应的数组中,否则创建一个新的数组,并将当前对象添加到该数组中。
const arr = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Alice', age: 35 },
{ name: 'Charlie', age: 40 },
{ name: 'Bob', age: 45 }
];
const filteredArr = arr.reduce((acc, obj) => {
const foundIndex = acc.findIndex(item => item[0].name === obj.name);
if (foundIndex !== -1) {
acc[foundIndex].push(obj);
} else {
acc.push([obj]);
}
return acc;
}, []);
console.log(filteredArr);
运行以上代码,将输出具有相同名称的对象组成的数组:
[
[
{ name: 'Alice', age: 25 },
{ name: 'Alice', age: 35 }
],
[
{ name: 'Bob', age: 30 },
{ name: 'Bob', age: 45 }
]
]
2. 如果你不知道数组中有多少索引,但想要访问每个数组的第一个元素,你可以使用 JavaScript 中的 map()
方法。map()
方法可以遍历数组,并对每个元素执行指定的操作,然后返回一个新的数组。
const arr = [
[1, 2, 3],
['a', 'b', 'c'],
[true, false, true]
];
const firstElements = arr.map(subArray => subArray[0]);
console.log(firstElements);
运行以上代码,将输出每个数组的第一个元素:
[1, 'a', true]