สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -
const arr = [
{
col1: ["a", "b"],
col2: ["c", "d"]
},
{
col1: ["e", "f"],
col2: ["g", "h"]
}
]; เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ดังกล่าวและส่งกลับเอาต์พุตต่อไปนี้
const output = [
{
col1: "b",
col2: "d"
},
{
col1: "f",
col2: "h"
}
]; โดยพื้นฐานแล้ว เราต้องการแปลงค่าคีย์อ็อบเจ็กต์ซึ่งเป็นอาร์เรย์เริ่มต้นเป็นค่าเดียว และค่านั้นจะเป็นองค์ประกอบที่สองของอาร์เรย์คีย์ออบเจ็กต์
รหัสสำหรับสิ่งนี้จะเป็น −
const arr = [
{
col1: ["a", "b"],
col2: ["c", "d"]
},
{
col1: ["e", "f"],
col2: ["g", "h"]
}
];
const reduceArray = (arr = []) => {
const res = arr.reduce((s,a) => {
const obj = {};
Object.keys(a).map(function(c) {
obj[c] = a[c][1];
});
s.push(obj);
return s;
}, []);
return res;
};
console.log(reduceArray(arr)); และผลลัพธ์ในคอนโซลจะเป็น −
[ { col1: 'b', col2: 'd' }, { col1: 'f', col2: 'h' } ]