Как преобразовать массив объектов javascript в строковый массив атрибута объекта, который я хочу?
Возможный дубликат:
Доступ к свойствам массива объектов
Дано:
[{
'id':1,
'name':'john'
},{
'id':2,
'name':'jane'
}........,{
'id':2000,
'name':'zack'
}]
Какой лучший способ получить:
['john', 'jane', ...... 'zack']
Должен ли я прокручиваться и нажимать item.name
на другой массив или есть простая функция для этого?
Ответы
Ответ 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]);
}
}