filter匹配某个数组对应的数组对象的id所对应的下标
时间: 2024-10-15 11:21:42 浏览: 33
在JavaScript中,如果你有一个数组`arr`,其中包含对象,每个对象都有一个`id`属性,你可以使用`Array.prototype.findIndex()`或者`Array.prototype.find()`方法结合`filter()`来获取特定`id`对应的元素的索引。这两个方法会遍历数组,对每个对象应用提供的测试函数(这里是检查`id`是否匹配),如果找到匹配项,返回该对象的索引。
例如:
```javascript
let arr = [
{ id: 1, name: 'A' },
{ id: 2, name: 'B' },
{ id: 3, name: 'C' }
];
function findIndexById(id) {
return arr.findIndex(obj => obj.id === id);
}
let index = findIndexById(2); // 如果id为2的对象存在,将返回0;不存在则返回-1
```
如果你想得到所有匹配的索引,可以使用`findAll()`,但这个方法不是标准的数组方法,需要自定义实现:
```javascript
function findAllIndexesById(id) {
return arr.reduce((acc, obj, i) => (obj.id === id ? acc.concat(i) : acc), []);
}
let allIndexes = findAllIndexesById(2); // 如果id为2的对象存在,将返回[1]
```
阅读全文