将二维数组合并到对象数组中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将二维数组合并到对象数组中相关的知识,希望对你有一定的参考价值。
我想知道如何合并这个二维数组
let arr[
['Reference', 'Price'],
['232323DD, 15.00]
];
我想把它转换成
[
{name: 'Reference', value: '232323DD'},
{name: 'Price', value: 15.00}
]
我试过这个:Convert a two dimensional array into an array of objects但它对我不起作用。
答案
你可以使用.map()
:
let [keys, values] = [
['Reference', 'Price'],
['232323DD', 15.00]
];
let result = keys.map((k, i) => ({name: k, value: values[i]}));
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
另一答案
您可以映射该数组中的第一个数组,并使用它们的值作为对象的键:
let arr = [
['Reference', 'Price'],
['232323DD', '15.00']
];
console.log(
arr[0].map((name, i) => ({name, value:arr[1][i]}))
)
另一答案
其他解决方案,如果你不熟悉地图(我认为使用这个例子的地图使它有点难以阅读)...
const arr = [
['Reference', 'Price'],
['232323DD', 15.00]
]
const obj = []
arr.forEach(x => obj.push({name: x[0], value: x[1]}))
console.log(obj)
另一答案
您可以使用地图功能。它将在每个数组项上运行回调,并在新数组中返回它。
// where 'arr' is your original array
const new_arr = arr.map((item) => {
// this is called a 'destructuring assignment'
const [name, value] = item;
// return the values as fields in an object
return {name, value};
});
另一答案
const arrArr = [['Reference', 'Price'], ['232323DD, 15.00]];
const objArr = [];
for (const item of arrArr) {
objArr.push({name: item[0], value: item[1]});
}
另一答案
let arr = [
['Reference', 'Price'],
['232323DD', '15.00']
];
let result = arr[0].map((key, i) => ({name: key, value: arr[1] ? arr[1][i] : null}));
console.log(result);
另一答案
我会试着打破这个:
// 1. create a new arr object:
let convertedArr = [];
// 2. loop over the original array:
for(let i = 0; i < arr.length; i++){
let currentItem = arr[i];
//create a temp object
let obj = {name:currentItem[0], value: name:currentItem[1] };
//push a new object to the array
convertedArr.push(obj);
}
以上是关于将二维数组合并到对象数组中的主要内容,如果未能解决你的问题,请参考以下文章