Доступ к свойствам массива объектов

javascript arrays d3.js

12432 просмотра

5 ответа

довольно простой вопрос, я думаю, но я не смог найти информацию по этому вопросу.

Через d3 я разбираю csv и каждый объект выглядит так

name: "whatever"
number: "52"

Как я могу получить доступ к массиву всех свойств «число» в виде массива, не создавая новый массив и не нажимая каждый элемент?

Автор: Dave Источник Размещён: 26.07.2019 03:58

Ответы (5)


-1 плюса

Решение

Версия ES6:

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

Наслаждаться.

Автор: Francois Nadeau Размещён: 14.12.2018 03:07

29 плюса

Используйте array.map :

var numbers = objects.map(function(o) { return o.number; });
Автор: mbostock Размещён: 08.01.2012 07:03

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");
Автор: Pointy Размещён: 26.11.2011 09:40

1 плюс

for (i=0; i<myArrayOfObjects.length; i++) {
    doWhatever(myArrayOfObjects[i].number);
}
Автор: Jonathan M Размещён: 26.11.2011 09:44

0 плюса

Если вы используете lodash, вы можете сделать это:

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

Автор: Colo Ghidini Размещён: 25.02.2016 02:05
Вопросы из категории :
32x32