js 查询数组对象中不同字段的相同值
时间: 2023-12-19 10:58:10 浏览: 73
你可以使用 JavaScript 中的 `filter()` 函数和 `map()` 函数来实现这个功能。假设你有一个数组对象 `data`,其中每个对象都有两个字段 `name` 和 `age`,你可以按照以下步骤查询相同的 `name` 值:
1. 使用 `map()` 函数将数组对象中的 `name` 字段提取出来,生成一个新的只包含 `name` 字段的数组。
```javascript
const names = data.map(item => item.name);
```
2. 使用 `filter()` 函数和 `indexOf()` 函数来查询在 `names` 数组中出现过多次的值,也就是相同的 `name` 值。
```javascript
const sameNames = names.filter((name, index) => names.indexOf(name) !== index);
```
这里的 `filter()` 函数和 `indexOf()` 函数结合使用,可以将数组中出现过多次的值筛选出来,并生成一个新的数组 `sameNames`。
最后,你可以在控制台输出 `sameNames`,查看查询结果。
完整代码示例:
```javascript
const data = [
{ name: 'Alice', age: 20 },
{ name: 'Bob', age: 22 },
{ name: 'Alice', age: 24 },
{ name: 'Charlie', age: 25 },
{ name: 'Bob', age: 26 },
];
const names = data.map(item => item.name);
const sameNames = names.filter((name, index) => names.indexOf(name) !== index);
console.log(sameNames); // Output: ['Alice', 'Bob']
```
阅读全文