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