<!doctype html> <html> <head> <meta charset="UTF-8"> <title>find查找數組數據</title> </head> <body> <script> let myId = 3; let data = [ {id:1,value:false}, {id:2,value:false}, {id:3,value:false} ]; var findVal = data.find(item => { return item.id === myId; }); findVal.value = true; //修改匹配項的值 console.log(findVal); // 打印匹配項數據 </script> </body> </html>
遇到個功能是要分類就想說在前端過濾,不要從查數據庫的時候過濾了。然后就想說除了filter還有啥好用的
發現有個find,測試一番之后發現
const list = [{'name':'1',index:1},{'name':'2'},{'name':'1'}]
let list2 = list.find(i=>i.name==='1')
let list3 = list.filter(i=>i.name==='1')
console.log(list); [ { name: '1', index: 1 }, { name: '2' }, { name: '1' } ]
console.log(list2); { name: '1', index: 1 }
console.log(list3);[ { name: '1', index: 1 }, { name: '1' } ]
find 和 filter 都是不改變原數組的方法
但是find只查出第一個符合條件的結果像例子里是直接返回了一個對象而不是數組!
,而filter返回全部結果仍然是數組。