Javascript 如何将由数组组成的数组转换为由对象组成的数组(定义新属性)?

Javascript 如何将由数组组成的数组转换为由对象组成的数组(定义新属性)?,javascript,arrays,object,Javascript,Arrays,Object,如何将这个:[[a1,b1],[a2,b2]]转换成这个[{x1:a1,y2:b1},{x2:a2,y2:b2}] 注:x1和x2是新定义的属性(以a1、b1等作为值) 注意:这是我尝试的: formatData.map((data, index) => { const obj = { dataX: data[index][0], dataY: data[index][2] } data = obj } 但是被卡住了。简单for循环可以做到这一点 var a

如何将这个:
[[a1,b1],[a2,b2]]
转换成这个<代码>[{x1:a1,y2:b1},{x2:a2,y2:b2}]

注:
x1
x2
是新定义的属性(以
a1
b1
等作为值)

注意:这是我尝试的:

formatData.map((data, index) => {
  const obj = {
    dataX: data[index][0],
    dataY: data[index][2]
  }
  data = obj
}

但是被卡住了。

简单for循环可以做到这一点

var arr=[[“a1”、“b1”]、[“a2”、“b2”];
var newArr=[];
变量中继器=['x','y','z'];/。。。
用于(arr中的var i){
var obj={};
对于(var j in arr[i]){
obj[中继器[j]+(parseInt(i)+1)]=arr[i][j];
}
新推力(obj);
}

控制台日志(newArr)
您可以使用如下数组的
.map

var temp = [['a1', 'b1'], ['a2', 'b2']];

temp.map(function(arr,index){
   var ret = {};
   ret['x'+(index+1)]= arr[0];
   ret['y'+(index+1)]= arr[1];
   return ret;
});

//"[{"x1":"a1","y1":"b1"},{"x2":"a2","y2":"b2"}]"

您可以映射这些值并获取新对象的值

var key=['x','y'],
数据=['a1','b1'],['a2','b2'],
result=data.map(a=>Object.assign(…keys.map((k,i)=>({[k]:a[i]}));

控制台日志(结果)使用
forEach

var m=[
['a1','b1'],
['a2','b2']
];
var tempArray=[]
m、 forEach(功能(项目、索引){
//创建一个本地对象以将键和值设置到其中
var localObj={};
//设置键和值
localObj['x'+1]=项[0];
localObj['y'+1]=项目[1]
//将该pObject推送到数组中
tempArray.push(localObj)
})


console.log(tempArray)
查找Array的.map()方法。我将投票结束这个问题,因为这个问题没有表现出任何努力的迹象。这是一个要求,而不是一个问题陈述。StackOverflow希望您这样做,我们也一样。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并以:)为例。请使用给定数据添加有效结果。仅使用一个指针,使用不尊重其输出或不从回调返回任何内容的映射是一个糟糕的实现。请让OP来分享成果。回答这样的问题促进了填鸭式喂食因为我们不应该做填鸭式喂食,我想OP现在加大了努力。是的,他现在做了。但问题是,我们是否应该等着看OP是否尝试了什么,然后再提供解决方案?在我的观点中,解决问题陈述而不是需求也是如此。是的,下次我会处理这个问题。如果我有3个值呢?我不想让中间那一个出现在结果中<代码>风险值数据=['a1',b1',c1'],['a2',b2',c2']/=>x1:a1,y1:c1无b1值
请不要回答此类问题。让我们共同努力。不要推销勺子feeding@Rajesh当前位置我只能回答。我没有评论说什么,因为较低的声誉,但下次我会这样做。感谢期望是x1和y1的关键,所以没有,但在你的情况下,关键是x0,x1…@brk:我已经更新了我的答案:如果你觉得答案不错,请分享你的评论。请让OP分享努力。回答这样的问题有助于提高效率feeding@Rajesh,不在这里
[{x1:a1,y2:b1}…
@Rajesh,一旦答案符合并满足期望的输出,我认为这不是问题。此外,OP包括他在答案中尝试的内容:)@Alexandru IonutMihai OP刚刚添加了代码。重点是,由于我们是老用户,我们应该尝试执行和维护某些规则。这仍然是我的观点,但我想我们不应该推广勺子feeding@Rajesh,我的观点是,如果已经有一个answe,但它可能更好,那么我会为它做我的答案。但我认为这个q是一个重复。如果我有3个值呢?我不希望中间的值出现在结果中呢?
var data=[[['a1',b1',c1',['a2',b2',c2']]//=>x1:a1,y1:c1没有b1值
在这种情况下,您需要维护一个键数组,如
[a,b,c,d]