📌  相关文章
📜  过滤数组并获取 num 的索引 (1)

📅  最后修改于: 2023-12-03 15:12:19.026000             🧑  作者: Mango

过滤数组并获取 num 的索引

在开发中有时需要对数组进行过滤操作并且获取某个元素的索引,本篇文章就来介绍如何实现该需求。

过滤数组

我们可以使用 Array.prototype.filter() 方法对数组进行过滤操作。filter() 方法会创建一个新的数组,其中包含通过指定函数测试的所有元素。如果函数的返回值为 true,则该元素将被保留;如果为 false,则将被过滤掉。

例如,我们有一个数组 arr,想要过滤出小于等于 5 的元素:

const arr = [1, 3, 5, 7, 9];
const filteredArr = arr.filter(num => num <= 5); // [1, 3, 5]
获取 num 的索引

我们可以使用 Array.prototype.findIndex() 方法获取某个元素的索引。findIndex() 方法会返回符合条件的第一个元素的索引。如果没有符合条件的元素,则返回 -1。

例如,我们有一个数组 arr,想要获取数字 5 的索引:

const arr = [1, 3, 5, 7, 9];
const index = arr.findIndex(num => num === 5); // 2
结合使用

结合 filter()findIndex() 方法,我们可以实现对数组进行过滤并获取某个元素的索引的需求。

例如,我们有一个数组 arr,想要过滤出小于等于 5 的元素,并获取数字 5 的索引:

const arr = [1, 3, 5, 7, 9];
const filteredArr = arr.filter(num => num <= 5); // [1, 3, 5]
const index = filteredArr.findIndex(num => num === 5); // 2

上述代码中,首先我们使用 filter() 方法过滤出小于等于 5 的元素,并将过滤后的数组赋值给 filteredArr。然后使用 findIndex() 方法获取数字 5 的索引。由于 findIndex() 方法是对原数组进行操作,因此我们直接对 filteredArr 进行操作即可。

完整代码
const arr = [1, 3, 5, 7, 9];
const filteredArr = arr.filter(num => num <= 5);
const index = filteredArr.findIndex(num => num === 5);

console.log(filteredArr); // [1, 3, 5]
console.log(index); // 2

以上就是如何实现对数组进行过滤并获取某个元素的索引的方法。希望对你有所帮助!