簡體   English   中英

如何在JavaScript中將數組映射到對象

[英]How to map array into an object in javascript

如何在JavaScript中將數組映射到對象? 例如如何映射這個

{
  name: [1,2,3,4,5,6],
  uv: [300,-145,-100,-8,100,9],
  pv: [456,230,345,450,312,235]
}

進入這個

data = [
  {name: '1', uv: 300, pv: 456},
  {name: '2', uv: -145, pv: 230},
  {name: '3', uv: -100, pv: 345},
  {name: '4', uv: -8, pv: 450},
  {name: '5', uv: 100, pv: 321},
  {name: '6', uv: 9, pv: 235}
]

在JavaScript中

您可以使用array#map

 var obj = { name:[1,2,3,4,5,6], uv:[300,-145,-100,-8,100,9], pv:[456,230,345,450,312,235] }; var result = obj.name.map(function(v,i){ return {name: v, uv: obj.uv[i], pv: obj.pv[i]}; }); console.log(result); 

像這樣:

 var first = { name:[1,2,3,4,5,6], uv:[300,-145,-100,-8,100,9], pv:[456,230,345,450,312,235] } var data = []; first.name.forEach((item, i) => { data.push({ name: first.name[i], uv: first.uv[i], pv: first.pv[i] }) }) console.log(data) 

您可以迭代鍵,然后迭代屬性,並在每個索引處分配所需的值。

無需事先知道就可以使用任意數量的屬性。

 var data = { name: [1, 2, 3, 4, 5, 6], uv: [300, -145, -100, -8, 100, 9], pv: [456, 230, 345, 450, 312, 235] }, result = Object .keys(data) .reduce((r, k) => (data[k].forEach((v, i) => (r[i] = r[i] || {})[k] = v), r), []); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

暫無
暫無

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

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