【问题标题】:Convert array of objects into array of properties [duplicate]将对象数组转换为属性数组[重复]
【发布时间】:2016-03-22 09:59:27
【问题描述】:

有没有一种简单的方法,使用filterparse 或其他东西来转换数组,如下所示:

var someJsonArray = [
  {id: 0, name: "name", property: "value", otherproperties: "othervalues"},
  {id: 1, name: "name1", property: "value1", otherproperties: "othervalues1"},
  {id: 2, name: "name2", property: "value2", otherproperties: "othervalues2"}
];

放入一个简单的数组,其中填充了前一个数组中包含的对象的一个​​属性,如下所示:

[0, 1, 2]

【问题讨论】:

  • someJsonArray.map(function(o) { return o.id; }) 怎么样? Doc about map
  • 我认为回调中的 return 甚至不会起作用。
  • @E.K Well try it 然后...
  • 我已经编辑了上述问题中的代码,以方便开发人员使用!哈哈。这是一个示例代码,它不起作用。
  • 是的,我对被遗忘的引号不好,因为该示例没有可访问的变量。谢谢

标签: javascript arrays


【解决方案1】:

使用.map()函数:

finalArray = someJsonArray.map(function (obj) {
  return obj.id;
});

片段

var someJsonArray = [
  {id: 0, name: "name", property: "value", therproperties: "othervalues"},
  {id: 1, name: "name1", property: "value1", otherproperties: "othervalues1"},
  {id: 2, name: "name2", property: "value2", otherproperties: "othervalues2"}
];
var finalArray = someJsonArray.map(function (obj) {
  return obj.id;
});
console.log(finalArray);

上面的sn-p改一下就行了。

【讨论】:

    【解决方案2】:

    一个更简单的例子(从 ES6 开始):

    someJsonArray.map(({id}) => id)
    

    【讨论】:

    • 这不符合问题中的要求
    • @LGAP - 你能解释一下 - 我已经根据要求重新测试了它,它产生了确切的结果?
    【解决方案3】:

    你可以这样做:

    var len = someJsonArray.length, output = [];
    for(var i = 0; i < len; i++){
       output.push(someJsonArray[i].id)
    }
    
    console.log(output);
    

    【讨论】:

      【解决方案4】:

      你可以这样做:

      var arr = [];
      for(var i=0; i<someJsonArray.length; i++) {
          arr.push(someJsonArray[i].id);
      }
      

      【讨论】:

        猜你喜欢
        • 2019-06-05
        • 2019-02-10
        • 2017-08-11
        • 1970-01-01
        • 2022-12-08
        • 2021-10-24
        • 1970-01-01
        相关资源
        最近更新 更多