欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript find()方法及返回数据实例

程序员文章站 2022-06-13 17:27:51
顾名思义就是 查找传入的对应数据当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。如果没有符合条件的元素返回 undefined// 定义一...

顾名思义就是 查找传入的对应数据

当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。

如果没有符合条件的元素返回 undefined

// 定义一个需要被查找的数组
var memolist = [{
        id: 1, name: '1'
      },{
        id: 2, name: '2'
      },{
        id: 3, name: '3'
      }]
// 用 edititem 变量将 查找出来的数据进行接收
var edititem = memolist.find((ele) => {
               return ele.id == 2 
            })  
// 打印 edititem 得到的结果是 {id: 2, name: '2'}

这看起来和没什么区别呀。。。

但是~~

// 我们修改 接收后的值 edititem 的值
edititem.name = '我是修改后的'

// 我们再打印一下 edititem 
console.log( edititem )  // {id: 2, name: '我是修改后的'}

感觉很正常嘛~

然后我们再打印一下 被查找的数据 memolist

console.log(memolist) 
// [{id: 1, name: "1"}, {id: 2, name: "我是修改后的"}, {id: 3, name: "3"}]

// 看得没 memolist 内的数据也被修改了

这里就反应出 fine() 方法返回的结果内存指向依然是 memolist 所指向的内存地址

所有这里返回的是浅拷贝的数据

注意: find() 对于空数组,函数是不会执行的。

注意: find() 并没有改变数组的原始值。

浏览器支持

表格中的数字表示支持该方法的第一个浏览器版本号。

方法          
find() 45.0 12.0 25.0 7.1 32.0

注意: ie 11 及更早版本不支持 find() 方法。

array.find(function(currentvalue, index, arr),thisvalue)

参数

参数 描述
function(currentvalue, index,arr) 必需。数组每个元素需要执行的函数。
函数参数:

 

参数 描述
currentvalue 必需。当前元素
index 可选。当前元素的索引值
arr 可选。当前元素所属的数组对象
thisvalue 可选。 传递给函数的值一般用 “this” 值。
如果这个参数为空, “undefined” 会传递给 “this” 值

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。