Подтвердить что ты не робот

Как преобразовать массив объектов javascript в строковый массив атрибута объекта, который я хочу?

Возможный дубликат:
Доступ к свойствам массива объектов

Дано:

[{
    'id':1,
    'name':'john'
},{
    'id':2,
    'name':'jane'
}........,{
    'id':2000,
    'name':'zack'
}]

Какой лучший способ получить:

['john', 'jane', ...... 'zack']

Должен ли я прокручиваться и нажимать item.name на другой массив или есть простая функция для этого?

4b9b3361

Ответ 1

Если ваш массив объектов items, вы можете сделать:

var items = [{
  id: 1,
  name: 'john'
}, {
  id: 2,
  name: 'jane'
}, {
  id: 2000,
  name: 'zack'
}];

var names = items.map(function(item) {
  return item['name'];
});

console.log(names);
console.log(items);

Ответ 2

Используйте map() функцию на основе массивов JavaScript:

var yourArray = [ {
    'id':1,
    'name':'john'
},{
    'id':2,
    'name':'jane'
}........,{
    'id':2000,
    'name':'zack'
}];

var newArray = yourArray.map( function( el ){ 
                                return el.name; 
                               });

Ответ 3

Вы можете использовать эту функцию:

function createStringArray(arr, prop) {
   var result = [];
   for (var i = 0; i < arr.length; i += 1) {
      result.push(arr[i][prop]);
   }
   return result;
}

Просто передайте массив объектов и требуемое свойство. script выше будет работать даже в старых реализациях EcmaScript.

Ответ 4

Вы можете сделать это только для контроля собственных свойств объекта:

var arr = [];

for (var key in p) {
    if (p.hasOwnProperty(key)) {
        arr.push(p[key]);
    }
}