如何从javascript中的项目列表创建字典列表?

时间:2017-03-02 18:49:33

标签: javascript arrays list

我想将项目列表转换为词典列表。请参阅下面的示例。

list_of_items = ['a','b','c','d']


desired_result = [{'name':'a'},{'name':'b'},{'name':'c'},{'name':'d'}]

我的尝试:

function myAttempt(list_of_items){
   list_of_items.forEach(function (i) {
  return {'name':i};
 });
  return list_of_items
};

myAttempt(list_of_items)

3 个答案:

答案 0 :(得分:0)

您可以使用map()方法返回对象数组。



var list_of_items = ['a','b','c','d']
var result = list_of_items.map(function(e) {
  return {name: e}
})

console.log(result)




或者,如果您可以使用ES6箭头功能,您可以得到相同的结果。

var result = list_of_items.map(e => ({name: e}))

答案 1 :(得分:0)

如何做到这一点的方法之一。您可以将各种数组传递给函数,与key相同。可能是name或任何你喜欢的。

let list_of_items = ['a','b','c','d'],
    result = [];

function myAttempt(arr, key){
  arr.forEach(function(v){
    let obj = {};
    obj[key] = v;
    result.push(obj);
  });
  console.log(result);
}

myAttempt(list_of_items, 'name');

答案 2 :(得分:0)

我不认为这个答案与@ Kinduser的答案重复,但它看起来更短:



var list_of_items = ['a','b','c','d'];

list_of_items.forEach(function(element, index, list) { 
  list[index] = {'name': element}; 
});

console.log(list_of_items);