【问题标题】:How to get all the elements in an array by dynamic property name? [duplicate]如何通过动态属性名称获取数组中的所有元素? [复制]
【发布时间】:2020-02-24 11:39:36
【问题描述】:

我有一个包含一些键值数据的数组。

var data = [
    {
        speed : 130,
        acceleration: 3.8
    },
    {
        speed : 120,
        acceleration: 3
    },
    {
        speed : 90,
        acceleration: 1.2
    },
    {
        speed : 140,
        acceleration: 1.4
    },
]

我想将所有“速度”项目放入不同的数组中。我可以使用 data.map(x => x.speed) 但在这里我不知道键名。

我想要类似的东西

var extract = getSubArray(data, 'speed');

【问题讨论】:

  • getSubArray 中,您可以使用带有括号属性访问权限的map;查看链接问题的答案。例如,function getSubArray(data, propName) { return data.map(x => x[propName]); } 或使用 ES2015+ 解构:function getSubArray(data, propName) { return data.map(([propName]: value) => value); } 虽然......是的,我想解构在那里并没有真正的帮助。 :-)

标签: javascript arrays


【解决方案1】:

您可以在函数中添加该逻辑:

var data = [{
    speed: 130,
    acceleration: 3.8
  },
  {
    speed: 120,
    acceleration: 3
  },
  {
    speed: 90,
    acceleration: 1.2
  },
  {
    speed: 140,
    acceleration: 1.4
  },
]

function getSubArray(dataArr, prop) {
 return dataArr.map(x => x[prop]);
}
var extract = getSubArray(data, 'speed');

console.log(extract);

【讨论】:

  • 使用相同的步骤解决: var extract = getSubArray(data, 'speed'); getSubArray(data, indexKey) { return data.map(x => x[indexKey]); }
猜你喜欢
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 2011-02-04
  • 1970-01-01
  • 2011-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多