前端开发:JS中查找数组的目标元素方法find()、findIndex()的使用

                  返回值

返回符合测试条件的第一个数组元素值,如果没有符合条件的则返回 undefined

4、用法

find() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回true时, find() 返回符合条件的元素,之后的值不会再调用执行函数;如果没有符合条件的元素返回 undefined。

5、注意事项

(1)find() 对于空数组,函数是不会执行的;

(2)find() 并没有改变数组的原始值。

6、使用实例

根据实际开发过程中的不同需求,把实战中比较常见的处理方式汇总出来,需求是做不完的,也不可能全部覆盖到,这里只分享一些比较常见的操作,方便有需要的开发者查阅使用,具体的实例如下所示。

1.获取数组中选择的name和数组中对应的name一致的第一个元素的ID

//空置类型选择

onConfirm1(value) {

this.currentItem.VacancyID = this.columns2.find((a)=>a.Name == value).ID;

},

2.获取数组中选择的item中的ProjectName和ProjectNewNo,和数组中对应的一致的第一个元素

projectDetail() {

if (this.value) {

return this.sourcedata.filter((item) => {

return [item.ProjectName, item.ProjectNewNo].find(

(si) => {

return si.indexOf(this.value) != -1;

}

);

});

}

return this.sourcedata;

},

3.获取数组中数字大于14的第一个元素

var numbers = [3, 10, 14, 18, 20];

function check(number) {

return number >= 14;

}

console.log(numbers.find(check)); //输出结果:14

4.获取数组中的NaN

var array = [1, 2, NaN, 4, 5, 6];

var str = array.find((value, index, arr) => {

return Object.is(NaN, value);

});

console.log(“——”,str); //输出结果:NaN

5.查找对象数组中的符合条件的第一条元素

var array = [

{ name: ‘a’, value: 1},

{name: ‘b’,value: 2}
,

{ name: ‘c’,value: 3}

]

var str = array.find(item=>item.name == ‘b’)

console.log(str) // 输出结果为{name: ‘b’, value:2}

二、findIndex()方法


1、定义

findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

2、语法

array.findIndex(function(currentValue, index, arr), thisValue);

3、参数说明

具体参数描述,如下图所示:

返回值

                  返回值

返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1。

4、用法

findIndex() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数;如果没有符合条件的元素返回 -1。

5、注意事项

(1)findIndex() 对于空数组,函数是不会执行的;
ign:top;">

返回符合测试条件的第一个数组元素索引,如果没有符合条件的则返回 -1。

4、用法

findIndex() 方法为数组中的每个元素都调用一次函数执行:当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数;如果没有符合条件的元素返回 -1。

5、注意事项

(1)findIndex() 对于空数组,函数是不会执行的;

  • 0
    点赞
  • 3
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页
评论

打赏作者

普通网友

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值