สมมติว่าเรามีอาร์เรย์และวัตถุเช่นนี้ -
const arr = [1, 2, 3, 4, 5]; const obj = { group1: ["Ram", "Mohan", "Shyam"], group2: ["Jai", "Dinesh"], };
เราจำเป็นต้อง zip อาร์เรย์และอ็อบเจ็กต์เพื่อให้ค่าในอาร์เรย์ถูกกำหนดให้กับออบเจกต์ใหม่ที่คีย์ด้วยค่าในอ็อบเจ็กต์
แบบนี้ −
const output = { group1: { "Ram": 1, "Mohan": 2, "Shyam": 3 }, group2: { "Jai": 4, "Dinesh": 5 } };
เราจะวนซ้ำรายการอาร์เรย์แต่ละรายการและกำหนดค่าให้กับคีย์ของวัตถุใหม่พร้อมกัน
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const arr = [1, 2, 3, 4, 5]; const obj = { group1: ["Ram", "Mohan", "Shyam"], group2: ["Jai", "Dinesh"], }; const zipObject = (arr, obj) => { const res = {}; for(let i = 0; i < arr.length; i++){ if(obj['group1'][i]){ if(!res['group1']){ res['group1'] = {}; }; res['group1'][obj['group1'][i]] = arr[i]; }else{ if(!res['group2']){ res['group2'] = {}; } res['group2'][obj['group2'][i - obj['group1'].length]] = arr[i]; }; }; return res; }; console.log(zipObject(arr, obj));
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ในคอนโซล -
{ group1: { Ram: 1, Mohan: 2, Shyam: 3 }, group2: { Jai: 4, Dinesh: 5 } }