สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -
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' } ]