2016-08-16 3 views
0

У меня есть массив объектов, у каждого объекта есть некоторые свойства. как я могу вернуть только одно свойство из всего объекта ключ и значение вместе в массиве?Возвращаемый ключ и значение свойства в объекте

Прямо сейчас я только получаю значения

Это возвращает массив объектов:

var columnWidth = $('#grid').data('gridData').columns; 

Это возвращает массив значений свойств имени шириной от каждого объекта:

columnWidth.map(function(e) {return e.width;}); 

Теперь, что я получаю, это:

[30, 50, 80, 80, 90, 125] 

Что я хочу получить обратно есть:

["Width":30, "Width":50, "Width":80, "Width":80, "Width":90, "Width":125] 
+4

Формат, который вы пытаетесь создать, недействителен javascript; вы не можете иметь именованные элементы в массиве –

ответ

4

Тогда просто вернуть эти объекты:

columnWidth.map(function(e) {return { width: e.width }; }); 

Это даст вам массив, который выглядит как

[ { width: 30 }, { width: 50 }, ... ] 

(Использование Width: e.width, если вы хотите, чтобы название свойства было капитализировано.)

Формат, описанный в вашем вопросе, не имеет смысла; нет структуры данных JavaScript, которая выглядит так, поскольку индексы массива являются числовыми. Если вы хотите другую структуру, вы можете сделать это с помощью .map() или с .reduce().

Это решение дает вам массив объектов, каждый из которых имеет одно свойство с именем «ширина». Это похоже на ближайшее приближение к вашей заявленной цели.

+2

Не думаете ли вы, что это должно быть 'return {" Width ": e.width}; } 'и return будет массивом объектов :) :) – bipen

+2

@bipen oh ОК, если имя свойства должно быть заглавным. Однако его не нужно указывать. – Pointy

Смежные вопросы