簡體   English   中英

將二維數組合並為對象數組

[英]Merge two dimensional array into array of objects

我想知道如何合並這個二維數組

let arr[
  ['Reference', 'Price'],
  ['232323DD, 15.00]
];

我想將其轉換為

[
  {name: 'Reference', value: '232323DD'},
  {name: 'Price', value: 15.00}
]

我已經嘗試過: 將二維數組轉換為對象數組,但對我而言不起作用。

您可以映射該數組中的第一個數組,並將其值用作對象的鍵:

 let arr = [ ['Reference', 'Price'], ['232323DD', '15.00'] ]; console.log( arr[0].map((name, i) => ({name, value:arr[1][i]})) ) 

如果不確定兩個數組的大小,則應首先檢查它們的長度是否相等,以避免undefined

您可以使用.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; } 

如果您不熟悉地圖,則可以采用其他解決方案(我認為在此示例中使用地圖會使閱讀起來有些困難)...

 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);

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM