Javascript - Хороший способ создать массив из массива объектов - PullRequest
5 голосов
/ 11 июня 2009

У меня есть массив объектов javascript:

array = [ {x:'x1', y:'y1'}, {x:'x2', y:'y2'}, ... {x:'xn', y:'yn'} ]

Я хочу создать новый массив только из x значений:

[ 'x1', 'x2', ..., 'xn' ]

Я мог бы легко сделать это в цикле for ...:

var newarray = [];
for (var i = 0; i < array.length; i++){
     newarray.push(array[i].x);
}

... но мне интересно, есть ли хороший способ сделать это с помощью jquery или даже обычного javascript?

Ответы [ 3 ]

11 голосов
/ 11 июня 2009

Вы можете сделать это с map :

var newarray = jQuery.map(array, function (item) { return item.x; });
3 голосов
/ 12 июня 2009

ECMAScript 5 имеет собственный метод map():

var newArray = array.map(function(value) { return value.x; });

В FF это должно быть даже быстрее, чем зацикливание, но это не так для всех браузеров (Opera); другие даже не поддерживают это (IE).

0 голосов
/ 11 июня 2009

Конечно, это для работы с большим количеством данных, вы можете использовать jLinq (заявление об отказе: мой проект) для выбора и запроса ваших записей, а затем вернуть то, что вы хотите.

Опять же, это действительно для случаев, когда вы работаете с большим количеством объектов и делаете запросы, но вы можете получить некоторые идеи, глядя на исходный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...