Giả sử chúng ta có mảng đối tượng như sau:
const arr = [
{
col1: ["a", "b"],
col2: ["c", "d"]
},
{
col1: ["e", "f"],
col2: ["g", "h"]
}
];Chúng ta cần viết hàm JavaScript nhận vào mảng này và trả về kết quả như sau:
const output = [
{
col1: "b",
col2: "d"
},
{
col1: "f",
col2: "h"
}
];Cơ bản là chuyển giá trị của khóa đối tượng (ban đầu là mảng) thành một giá trị đơn lẻ, và giá trị đó là phần tử thứ hai của mảng khóa đối tượng.
Ví dụ
Mã thực hiện:
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));Kết quả in ra console:
[ { col1: 'b', col2: 'd' }, { col1: 'f', col2: 'h' } ]