将数组数组转换为对象数组

时间:2017-01-10 20:56:58

标签: javascript

我正在尝试将数组数组转换为对象数组。最简单的方法是什么?

myArray = [1,2,3];

myObject = convertToObjects(myArray);

convertToObjects= (items) => {
    let listOfItems = [];
    let convertToObj = items.map(item, idx => {
      let key = item;
      listOfItems.push({ key });
    });
    return listOfItems;
  }

谢谢!

预期产出:

[
{key: 1},
{key: 2},
{key: 3}]

3 个答案:

答案 0 :(得分:1)

您可以映射对象。



var myArray = [1, 2, 3],
    convertToObjects = items => items.map(key => ({ key })),
    myObject = convertToObjects(myArray);

console.log(myObject);




答案 1 :(得分:1)

map函数的参数为​​callback函数。

  

map为一个元素中的每个元素调用一次提供的回调函数   数组,按顺序,并从结果中构造一个新数组。

详细了解map method.

试试这个:

myArray = [1,2,3];

myObject = convertToObjects(myArray);

function convertToObjects(items){
    let listOfItems = [];
    let convertToObj = items.map(function(item) {
      let key = item;
      listOfItems.push({ key });
    });
    return listOfItems;
  }
console.log(myObject);

答案 2 :(得分:1)

@qxz在评论中提供了答案

  

myArray.map(x => ({key:x}))

这是一个简短的解释。

map()是数组的函数。它为每个元素调用一个提供的回调函数,然后返回一个结果数组。 See the documentation for map()

map()返回一个数组,而不是在适当的位置修改它,因此您需要捕获结果。

var myArray = [1, 2, 3],
var convertedArr = myArray.map( function(item) {
    return {"key": item};
});

console.log(convertedArr);