[英]How to map two arrays to create objects?
I have two arrays and I need to create objects like {x: new Date(2019, 1, 1), y: 0}
The result of my arrays looks like this 我有两个数组,我需要创建类似
{x: new Date(2019, 1, 1), y: 0}
的对象,我的数组的结果看起来像这样
dates
Array [
"2019, 1, 31",
"2019, 2, 28",
"2019, 3, 31",
]
monthlyTopUp
Array [
0,
50,
0,
]
Now each index from first array needs to match the index from second array. 现在,第一个数组的每个索引都需要与第二个数组的索引匹配。
What I've tried returned me an array with other arrays inside 我尝试过的返回了一个包含其他数组的数组
Array [
Array [
"2019, 1, 31",
0,
],
Array [
"2019, 2, 28",
50,
],
Array [
"2019, 3, 31",
0,
],
]
The way I've done this: 我这样做的方式:
const array = [dates, monthlyTopUp];
const data = array.reduce(
(dates, topUp) => topUp.map((v, i) => (dates[i] || []).concat(v)), []
);
console.log(data)
You can simply do it like this: 您可以像这样简单地做到这一点:
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);
Or array.map 或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/ https://jsfiddle.net/fgo5wanh/
You can use Array.prototype.reduce 您可以使用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.