访问对象数组的属性

时间:2011-11-26 21:38:32

标签: javascript arrays d3.js

我认为非常基本的问题,但我找不到相关的信息。

通过d3我解析一个csv,每个对象看起来像这样

name: "whatever"
number: "52"

如何在不创建新数组和推送每个元素的情况下,将所有属性“number”的数组作为数组访问?

5 个答案:

答案 0 :(得分:29)

使用array.map

var numbers = objects.map(function(o) { return o.number; });

答案 1 :(得分:2)

在JavaScript中,你不能,因为没有这样的数组。如果你有一个对象数组,那么每个对象都是它自己珍贵的小雪花。您当然可以将“数字”值传输到新数组,但它肯定是一个新数组。

一些工具包(Prototype,也许是Functional和Underscore)有一个“pluck()”工具,它可以完全按照你的意愿去做,但是他们也被迫创建新的数组。

function pluck(array, property) {
  var i, rv = [];

  for (i = 0; i < array.length; ++i) {
    rv[i] = array[i][property];
  }

  return rv;
}

然后:

var arrayOfNumbers = pluck(originalArray, "number");

答案 2 :(得分:1)

for (i=0; i<myArrayOfObjects.length; i++) {
    doWhatever(myArrayOfObjects[i].number);
}

答案 3 :(得分:0)

如果你使用的是lodash,你可以这样做:

var numbers = _.map(originalArray, 'number')

答案 4 :(得分:-1)

ES6版本:

const numbers = objects.map( o => o.number );

享受。

相关问题