根據鍵搜尋和更新陣列 JavaScript


有如下兩個陣列:

let arr1 =
[{"LEVEL":4,"POSITION":"RGM"},{"LEVEL":5,"POSITION":"GM"},{"LEVEL":5,"POSITION":"GMH"}]
let arr2 = [{"EMAIL":"test1@stc.com","POSITION":"GM"},
{"EMAIL":"test2@stc.com","POSITION":"GMH"},
{"EMAIL":"test3@stc.com","POSITION":"RGM"},
{"EMAIL":"test3@CSR.COM.AU","POSITION":"GM"}
]

我們要求編寫一個函式,它將屬性 level 新增到 arr2 的每個物件,從 arr1 中具有相同 “POSITION” 屬性值的對應物件中獲取該屬性值。

以下是該函式的程式碼:

let arr1 =
[{"LEVEL":4,"POSITION":"RGM"},{"LEVEL":5,"POSITION":"GM"},{"LEVEL":5,"POSI
TION":"GMH"}]
   let arr2 = [{"EMAIL":"test1@stc.com","POSITION":"GM"},
   {"EMAIL":"test2@stc.com","POSITION":"GMH"},
   {"EMAIL":"test3@stc.com","POSITION":"RGM"},
   {"EMAIL":"test3@CSR.COM.AU","POSITION":"GM"}
]
const formatArray = (first, second) => {
   second.forEach((el, index) => {
      const ind = first.findIndex(item => item["POSITION"] ===
      el["POSITION"]);
      if(ind !== -1){
         second[index]["LEVEL"] = first[ind]["LEVEL"];
      };
   });
};
formatArray(arr1, arr2);
console.log(arr2);

輸出

控制檯輸出為:

[
   { EMAIL: 'test1@stc.com', POSITION: 'GM', LEVEL: 5 },
   { EMAIL: 'test2@stc.com', POSITION: 'GMH', LEVEL: 5 },
   { EMAIL: 'test3@stc.com', POSITION: 'RGM', LEVEL: 4 },
   { EMAIL: 'test3@CSR.COM.AU', POSITION: 'GM', LEVEL: 5 }
]

更新時間:31-Aug-2020

168 閱讀

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.