将数组的数组转换为具有键的对象

10

我有一个数组的数组,它包含类似于这样的内容:

var values = [[1, 2, 3], [3, 2, 1]]
我尝试了 .map() 和 Object.assign,但我不知道如何实现它。我希望得到这样的输出:
values = [
    {'up': 1, 'middle': 2, 'down': 3},
    {'up': 3, 'middle': 2, 'down': 1}
]

我应该使用什么?这是我目前想到的:

const object1 = [[1,2,3],[3,2,1]],
  object = []

object1.forEach(function(array) {
   object.map(value => ({'up': array[0], 'mid': array[1], 'down': array[2]}))
 });

console.log(object)

期望的输出是什么?是始终将第1个、第2个或第3个索引放在前面,还是先排序再排列? - Farooq Ahmed Khan
2个回答

13

与其他人所做的并没有太大区别,但略微更加优雅:

let arr = [[1, 2, 3], [3, 2, 1]];

let result = arr.map(([up, middle, down]) => ({up, middle, down}));
console.log(result);


1
我认为这种方法不仅更加优雅,而且更加简单,显然是正确的做法。 - JollyJoker

3
您可以简单地使用Array.map(),无需使用forEach()

let arr =[[1, 2, 3], [3, 2, 1]];

let result = arr.map((e)=>({"up" : e[0], "mid"  : e[1], "down" : e[2]}));
console.log(result);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接