สมมติว่าเรามีอาร์เรย์และอ็อบเจกต์ดังนี้:
const arr = [1, 2, 3, 4, 5];
const obj = {
group1: ["Ram", "Mohan", "Shyam"],
group2: ["Jai", "Dinesh"],
};เราต้องทำการ zip อาร์เรย์และอ็อบเจกต์ เพื่อให้ค่าในอาร์เรย์ถูกกำหนดให้กับอ็อบเจกต์ใหม่ที่มี key เป็นค่าในอ็อบเจกต์เดิม
ผลลัพธ์ที่ต้องการ:
const output = {
group1: {
"Ram": 1,
"Mohan": 2,
"Shyam": 3
},
group2: {
"Jai": 4,
"Dinesh": 5
}
};เราจะวนซ้ำแต่ละสมาชิกในอาร์เรย์และกำหนดค่าให้กับ key ของอ็อบเจกต์ใหม่พร้อมกัน
ตัวอย่าง
โค้ดต่อไปนี้เป็นตัวอย่าง:
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 } }