[英]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.