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” 值

技術細節


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM