我有這個陣列
[
[ [ 'id', 'name' ], [ '1', 'A' ] ],
[ [ 'id', 'name' ], [ '2', 'B' ] ],
[ [ 'id', 'name' ], [ '3', 'C' ] ]
]
我希望它是具有相應值的物件陣列
[{id: 1, name: 'A'}, {id:2, name: 'B'}, {id:3, name: 'C'}]
謝謝你
uj5u.com熱心網友回復:
您可以在 js 中使用任何高階函式,例如 map、for、reduce。下面是Array.reduce的實作
const arr = [
[
['id', 'name'],
['1', 'A'],
],
[
['id', 'name'],
['2', 'B'],
],
[
['id', 'name'],
['3', 'C'],],
];
const response = arr.reduce((acc, curr) => {
const [firstItem, secondItem] = curr;
const [id, name] = firstItem;
const [val1, val2] = secondItem;
acc.push({ [id]: val1, [name]: val2 });
return ACC;
}, []);
console.log(response)
uj5u.com熱心網友回復:
您可以轉置內部陣列并映射新物件。
const
transpose = (a, b) => b.map((v, i) => [...(a[i] || []), v]),
data = [[['id', 'name'], ['1', 'A'] ], [['id', 'name'], ['2', 'B']], [['id', 'name'], ['3', 'C']]],
result = data.map(a => Object.fromEntries(a.reduce(transpose, [])));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
uj5u.com熱心網友回復:
Array#map在陣列上使用迭代。
對于每個子陣列,它將有一個串列keys和一個串列values。使用Array#reduce,您可以keys在第三個引數(索引)的幫助下迭代計算物件,以獲取每個對應的值:
const data = [
[ [ 'id', 'name', 'age' ], [ '1', 'A', 22 ] ],
[ [ 'id', 'name' ], [ '2', 'B' ] ],
[ [ 'id', 'name' ], [ '3', 'C' ] ]
];
const arr = data.map(([ keys, values = [] ]) =>
keys.reduce((obj, key, i) => ({ ...obj, [key]: values[i] }), {})
);
console.log(arr);
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/360158.html
標籤:javascript 节点.js
上一篇:來自Excel表的JAVASCRIPT讀取值顯示不同的值
下一篇:單擊更改不同的圖片
