JavaScript數組元素匹配與合并:如何根據鍵值對高效地重組兩個數組?

JavaScript數組元素匹配與合并:如何根據鍵值對高效地重組兩個數組?

JavaScript數組元素匹配與合并:基于鍵值對的數組重組

javascript開發中,常常需要根據兩個數組的鍵值關系生成新的數組。本文介紹一種高效方法:根據數組a的value值和數組b的key值是否匹配,構建一個新數組。

假設:數組a包含多個對象,每個對象有id、key和value三個屬性;數組b也包含多個對象,其key值與數組a中的key值對應。目標是創建一個新數組,包含數組b的所有屬性,并補充來自數組a中對應的value和key屬性。

示例輸入:

數組a:[{id:1,key:’key1′,value:’ggg’},{id:2,key:’key2′,value:’cccc’}]

立即學習Java免費學習筆記(深入)”;

數組b:[{id:3,key1:’sdf’},{id:4,key2:’sdfdff’}]

期望輸出:

[{id:3,key1:’sdf’,key:’key1′,value:’ggg’},{id:4,key2:’sdfdff’,key:’key2′,value:’cccc’}]

高效解決方案:使用map和find方法

以下代碼利用map和find方法實現:

const a = [{id:1,key:'key1',value:'ggg'},{id:2,key:'key2',value:'cccc'}]; const b = [{id:3,key1:'sdf'},{id:4,key2:'sdfdff'}];  function mergeArrays(a, b) {   return b.map(item => {     const match = a.find(i => Object.keys(item).some(k => k === i.key));     return {...(match || {}), ...item};   }); }  const c = mergeArrays(a, b); console.log(c);

mergeArrays函數接收數組a和b作為參數。map方法遍歷數組b,find方法在數組a中查找與b中對象key值匹配的對象。找到匹配項后,使用展開運算符…合并兩個對象。如果沒有匹配項,則只保留b中的對象。最后返回合并后的新數組。 Object.keys(item).some(k => k === i.key) 確保即使key不在開頭也能匹配。

這段代碼簡潔高效地完成了數組合并任務,避免了復雜的循環嵌套,提高了代碼可讀性和可維護性。

以上就是JavaScript數組元素匹配與合并:如何根據

? 版權聲明
THE END
喜歡就支持一下吧
點贊9 分享