js筛选数组获取指定数据的下标
时间: 2023-12-09 09:06:20 浏览: 190
可以使用 JavaScript 中的 `Array.prototype.findIndex()` 方法来获取指定数据的下标。
该方法接收一个回调函数作为参数,该回调函数会被传入数组中的每个元素和元素的索引,当回调函数返回 true 时,该方法返回当前元素的索引。
例如,如果我们想要在数组 `arr` 中查找第一个值为 `target` 的元素的索引,我们可以这样写:
```javascript
const index = arr.findIndex((elem) => elem === target);
```
如果找到了目标元素,`index` 将会是该元素在数组中的索引,否则将会是 -1。
相关问题
fiflter匹配某个数组对应的数组对象的id的数组对象及下标
在JavaScript中,如果你有一个数组`arr`,它包含多个对象,每个对象都有一个名为`id`的属性,你可以使用`Array.prototype.filter()`方法来筛选出那些id匹配特定值的对象,并返回一个新的数组,同时包含原始对象及其索引。
例如:
```javascript
let arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' },
];
// 定义你要匹配的id值
let targetId = 1;
// 使用filter()方法
let matchedObjectsAndIndices = arr.filter((item, index) => item.id === targetId, {
id: targetId,
index: -1 // 这里可以忽略,因为index会在回调函数内部提供
});
matchedObjectsAndIndices.forEach((obj, i) => {
console.log(`Object with id ${targetId}: ${JSON.stringify(obj)}, at index ${i}`);
});
```
这个例子会返回所有id为1的数组元素,以及它们在原数组中的索引。如果你想得到的是仅仅匹配的元素,去掉索引信息,可以简化filter方法的第二个参数:
```javascript
let filteredItems = arr.filter(item => item.id === targetId);
```
filter匹配某个数组对应的数组对象的id的数组对象及下标
在JavaScript中,如果你有一个数组,其中包含其他对象,并你想找到那些对象的id符合特定条件的元素及其索引,你可以使用`Array.prototype.filter()`方法。这个方法会创建一个新数组,只包含通过提供的测试函数筛选出来的元素。对于每个元素,你需要检查它的id是否满足条件。
假设你有一个数组 `arrayOfObjects` 的结构如下:
```javascript
let arrayOfObjects = [
{ id: 1, name: 'A' },
{ id: 2, name: 'B' },
{ id: 3, name: 'C' },
// 更多对象...
];
```
你可以这样使用filter():
```javascript
let filteredArray = arrayOfObjects.filter(obj => obj.id === yourDesiredId);
// 这将返回一个新的数组,比如:
// [{ id: 2, name: 'B' }, ...] (如果yourDesiredId是2)
// 获取符合条件的元素索引
let indices = filteredArray.map((obj, index) => index);
// 这将返回一个索引数组,如:[1]
```
这里,`yourDesiredId`是你想要匹配的具体id值。
阅读全文