js 找到同一个数组中某个对象中相同的值并分别返回
时间: 2023-02-15 15:33:09 浏览: 94
可以使用 Array.prototype.filter() 方法来实现。例如:
```
const arr = [
{ name: 'Alice', age: 21 },
{ name: 'Bob', age: 22 },
{ name: 'Charlie', age: 23 },
{ name: 'Alice', age: 24 },
];
const result = arr.filter(obj => obj.name === 'Alice');
console.log(result);
// Output: [{ name: 'Alice', age: 21 }, { name: 'Alice', age: 24 }]
```
使用 filter() 方法时,会对数组中的每个元素调用给定的回调函数。回调函数只有在回调函数返回值为 true 时,数组中的元素才会被包含在返回的结果数组中。在上面的例子中,我们使用了箭头函数作为回调函数,比较了每个对象的 name 属性,如果属性值为 'Alice',则返回 true。
如果要找出每种值出现的次数,可以使用 Array.prototype.reduce() 方法来实现。例如:
```
const counts = arr.reduce((counts, obj) => {
counts[obj.name] = (counts[obj.name] || 0) + 1;
return counts;
}, {});
console.log(counts);
// Output: { Alice: 2, Bob: 1, Charlie: 1 }
```
使用 reduce() 方法时,会对数组中的每个元素调用给定的回调函数。回调函数接收两个参数:一个累加器和当前元素。在这个例子中,我们使用了箭头函数作为回调函数,使用累加器来跟踪每个 name 出现的次数。
希望这个回答能帮到你!
阅读全文