【问题标题】:Convert array of objects to object of objects将对象数组转换为对象对象
【发布时间】:2016-03-11 02:54:16
【问题描述】:

我有什么:

[{title: hi}, {title: ha}, {title: ho}]

我想要什么:

{title: hi}, {title: ha}, {title: ho}

这是因为,当我尝试将数组添加到数据库时,例如:

"$push" : { "paises" : array}

,它将是:

Array of objects

但我想要这个:

Object of objects

【问题讨论】:

  • 不确定你在这里要求什么,你的“我想要的”是一个对象数组。
  • 当然,我需要'销毁'数组'[{title:hi},{title:ha},{title:ho}]',否则我将有两个对象数组.

标签: javascript arrays json object mongoose


【解决方案1】:

如果你使用 ES6,你可以使用spread 操作符。

...[{title: hi}, {title: ha}, {title: ho}] = {title: hi}, {title: ha}, {title: ho}

【讨论】:

    【解决方案2】:
    {title: hi}, {title: ha}, {title: ho}
    

    这不是对象的对象。这些只是对象。

    如果您想要的是一种逐个处理每个对象并将它们插入数据库的方法,您可以执行以下操作。

    [{title: hi}, {title: ha}, {title: ho}].forEach(function(obj){
      //do something with object
    });
    

    【讨论】:

    • 是的,我想过,但是是否可以更新一次数据库,而不是每个对象更新 n 次?
    • 你是如何插入它们的? db.paises.insert() ?
    • 只需使用 "$push" : { "paises" : array}
    【解决方案3】:

    解决办法:

    var array = [{title: 'hi'}, {title: 'ha'}, {title: 'ho'}];
    
    var object = {};
    
    var arrayToObject = function(array, object){
      array.forEach(function(element, index){
        object[index] = element;
      })
      console.log(object);
    }
    
    arrayToObject(array, object);
    

    https://jsfiddle.net/2r903tdh/

    【讨论】:

      猜你喜欢
      • 2020-06-15
      • 2022-01-20
      • 2017-01-14
      • 2019-07-11
      • 1970-01-01
      相关资源
      最近更新 更多