【问题标题】:How to create list of dictionaries from list of items in javascript?如何从javascript中的项目列表创建字典列表?
【发布时间】:2017-03-02 18:49:33
【问题描述】:

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

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)

【问题讨论】:

  • JavaScript 没有字典。在您的情况下,它具有数组和对象,并且您希望将数组转换为对象数组。
  • Array.prototype.map() 函数太容易了

标签: javascript arrays list


【解决方案1】:

您可以使用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}))

【讨论】:

    【解决方案2】:

    其中一种方法。您可以将各种数组传递给函数,与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');

    【讨论】:

      【解决方案3】:

      我不认为这个答案与@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);

      【讨论】:

        猜你喜欢
        • 2021-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-07
        • 2019-05-25
        • 1970-01-01
        • 2018-12-17
        相关资源
        最近更新 更多