ES6数组find实现嵌套数据匹配
生活随笔
收集整理的這篇文章主要介紹了
ES6数组find实现嵌套数据匹配
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
業務場景:
有兩個數據源A和B,格式為數組包裹的對象列表,對象里面有標識字段“user_id”
infoA = [{user_id: 4,org_id: 9,org_no: "1212121",name: "楊賽",sex: "男",cardno: "142729199611101418",phone: "13522687472",nation: "漢",native: "江蘇省南京市",birthday: "-",health: "其他",marital_status: "其他",classification: "未定義",face: "其他",education: "其他",expand: "",status: "其他",is_delete: 0,updated_at: "2021-12-01",created_at: "2021-11-25",org_name: "1212121",},{user_id: 8,org_id: 1,org_no: "01",name: "李歌女",sex: "男",cardno: "142719199711191257",phone: "13522681234",nation: "漢",native: "江蘇省南京市",birthday: "-",health: "其他",marital_status: "其他",classification: "未定義",face: "其他",education: "其他",expand: "123",status: "其他",is_delete: 0,updated_at: null,created_at: "2021-11-26",org_name: "連云區一中",},{user_id: 9,org_id: 1,org_no: "01",name: "黃春花",sex: "男",cardno: "321719199711191257",phone: "13522685634",nation: "漢",native: "廣東省珠海市",birthday: "-",health: "其他",marital_status: "其他",classification: "未定義",face: "其他",education: "其他",expand: "fff",status: "其他",is_delete: 0,updated_at: null,created_at: "2021-12-29",org_name: "連云區一中",},{user_id: 11,org_id: 1,org_no: "01",name: "李歌女2",sex: "男",cardno: "142719199711191258",phone: "13522681234",nation: "漢",native: "江蘇省南京市",birthday: "-",health: "其他",marital_status: "其他",classification: "未定義",face: "其他",education: "其他",expand: "123",status: "其他",is_delete: 0,updated_at: null,created_at: null,org_name: "連云區一中",},],infoB = [{user_id: 4,org_id: 9,org_no: "1212121",name: "楊賽",sex: 1,cardno: "142729199611101418",phone: "13522687472",nation: "漢",native: "江蘇省南京市",birthday: "19961110",health: 0,marital_status: 0,classification: 0,face: 0,education: 1,expand: "",status: 0,is_delete: 0,updated_at: "1638343691",created_at: "1637823725",},{user_id: 8,org_id: 1,org_no: "01",name: "李歌女",sex: 2,cardno: "142719199711191257",phone: "13522681234",nation: "漢",native: "江蘇省南京市",birthday: "19971119",health: 1,marital_status: 1,classification: 1,face: 1,education: 1,expand: "123",status: 0,is_delete: 0,updated_at: null,created_at: "1637893773",},{user_id: 9,org_id: 1,org_no: "01",name: "黃春花",sex: 2,cardno: "321719199711191257",phone: "13522685634",nation: "漢",native: "廣東省珠海市",birthday: "19971119",health: 1,marital_status: 1,classification: 1,face: 1,education: 1,expand: "fff",status: 0,is_delete: 0,updated_at: null,created_at: "1640719204",},{user_id: 11,org_id: 1,org_no: "01",name: "李歌女2",sex: 2,cardno: "142719199711191258",phone: "13522681234",nation: "漢",native: "江蘇省南京市",birthday: "19971119",health: 1,marital_status: 1,classification: 1,face: 1,education: 1,expand: "123",status: 0,is_delete: 0,updated_at: null,created_at: null,},];業務需求:
點擊數據源A中的某條數據時,獲取對應B中的數據。
ES6方法:
Array.find((value,index,arr)=>{ return 條件表達式;})
value:每一次迭代查找的數組元素。
index:每一次迭代查找的數組元素索引。
arr:被查找的數組。
返回符合條件表達式的第一個value
Array.findIndex((value,index,arr)=>{ return 條件表達式;})
返回符合條件表達式的第一個value的index
實現代碼:
// 假設被點擊的數據是下面這條,我們用變量example接收一下let example = {user_id: 11,org_id: 1,org_no: "01",name: "李歌女2",sex: "男",cardno: "142719199711191258",phone: "13522681234",nation: "漢",native: "江蘇省南京市",birthday: "-",health: "其他",marital_status: "其他",classification: "未定義",face: "其他",education: "其他",expand: "123",status: "其他",is_delete: 0,updated_at: null,created_at: null,org_name: "連云區一中",};// 在我們需要的數據源中進行查找,我們最終需要的是B中的數據,所以就在B中查找,將查到的數據用變量target接收let target = infoB.find((value, index, arr) => {return value.user_id === example.user_id; // 如果B中元素的user_id和example中的user_id相等,那么就返回該元素并結束find});? ? ?在瀏覽器控制臺輸入target查看結果,符合需求。
總結
以上是生活随笔為你收集整理的ES6数组find实现嵌套数据匹配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JS起源及发展历史
- 下一篇: 通过区块链技术实现计算资源的高效利用