Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ค้นหาและอัปเดตอาร์เรย์ตามคีย์ JavaScript


เรามีสองอาร์เรย์แบบนี้ -

let arr1 =
[{"LEVEL":4,"POSITION":"RGM"},{"LEVEL":5,"POSITION":"GM"},{"LEVEL":5,"POSITION":"GMH"}]
let arr2 = [{"EMAIL":"[email protected]","POSITION":"GM"},
{"EMAIL":"[email protected]","POSITION":"GMH"},
{"EMAIL":"[email protected]","POSITION":"RGM"},
{"EMAIL":"[email protected]","POSITION":"GM"}
]

เราจำเป็นต้องเขียนฟังก์ชันที่เพิ่มระดับคุณสมบัติให้กับแต่ละวัตถุของ arr2 โดยเลือกจากวัตถุจาก arr1 ที่มีค่าเท่ากันสำหรับคุณสมบัติ "POSITION"

มาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −

ตัวอย่าง

let arr1 =
[{"LEVEL":4,"POSITION":"RGM"},{"LEVEL":5,"POSITION":"GM"},{"LEVEL":5,"POSI
TION":"GMH"}]
   let arr2 = [{"EMAIL":"[email protected]","POSITION":"GM"},
   {"EMAIL":"[email protected]","POSITION":"GMH"},
   {"EMAIL":"[email protected]","POSITION":"RGM"},
   {"EMAIL":"[email protected]","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: '[email protected]', POSITION: 'GM', LEVEL: 5 },
   { EMAIL: '[email protected]', POSITION: 'GMH', LEVEL: 5 },
   { EMAIL: '[email protected]', POSITION: 'RGM', LEVEL: 4 },
   { EMAIL: '[email protected]', POSITION: 'GM', LEVEL: 5 }
]