簡體   English   中英

如何映射兩個數組以創建對象?

[英]How to map two arrays to create objects?

我有兩個數組,我需要創建類似{x: new Date(2019, 1, 1), y: 0}的對象,我的數組的結果看起來像這樣

dates

Array [
  "2019, 1, 31",
  "2019, 2, 28",
  "2019, 3, 31",
]

monthlyTopUp

Array [
  0,
  50,
  0,
]

現在,第一個數組的每個索引都需要與第二個數組的索引匹配。

我嘗試過的返回了一個包含其他數組的數組

Array [
  Array [
    "2019, 1, 31",
    0,
  ],
  Array [
    "2019, 2, 28",
    50,
  ],
  Array [
    "2019, 3, 31",
    0,
  ],
]

我這樣做的方式:

const array = [dates, monthlyTopUp];
const data = array.reduce(
  (dates, topUp) => topUp.map((v, i) => (dates[i] || []).concat(v)), []
);
console.log(data)

您可以像這樣簡單地做到這一點:

var arr1 = ["2019, 1, 31",  "2019, 2, 28",  "2019, 3, 31"];
var arr2 = [0, 50, 0];

var result = [];

for(var i = 0; i < arr1.length; i++){
    result.push({'x':arr1[i], 'y':arr2[i]});
}

console.log(result);

或array.map

var arr1 = ["2019, 1, 31",  "2019, 2, 28",  "2019, 3, 31"];
var arr2 = [0, 50, 0];

var result = arr1.map((v, k) => {return {x:v,y:arr2[k]}})

console.log(result);

https://jsfiddle.net/fgo5wanh/

您可以使用Array.prototype.reduce

 let arr1 = ["2019, 1, 31", "2019, 2, 28", "2019, 3, 31"]; let arr2 = [0, 50, 0]; let final=arr1.reduce((acc,value,i)=>{ let tempobj={}; tempobj["x"]=new Date(value.replace(/\\s/g, "").replace(/,/g, "-")); tempobj["y"]=arr2[i]; acc.push(tempobj) return acc; },[]) console.log(final) 

暫無
暫無

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

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