• javaScript中的find()方法和返回数据的内存指向


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

    • 当数组中的元素在测试条件时返回 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” 值

    技术细节

  • 相关阅读:
    MYSQL架构和Innodb存储引擎
    MySQL基础
    ConcurrentHashMap
    线程池
    并发包(JUC)之阻塞队列
    并发包(JUC)之Condition、CountDownLatch
    并发包(JUC)之Lock和AQS
    volatile关键字——数据可见性问题
    对象锁——synchronized关键字
    获取ip
  • 原文地址:https://www.cnblogs.com/PasserByOne/p/12793236.html
Copyright © 2020-2023  润新知