Есть ли простой способ, используя filter или parse или что-то еще, чтобы преобразовать массив следующим образом:

var someJsonArray = [
  {id: 0, name: "name", property: "value", otherproperties: "othervalues"},
  {id: 1, name: "name1", property: "value1", otherproperties: "othervalues1"},
  {id: 2, name: "name2", property: "value2", otherproperties: "othervalues2"}
];

В простой массив, заполненный одним атрибутом объектов, содержащихся в предыдущем массиве, например:

[0, 1, 2]
19
Ellone 16 Дек 2015 в 13:08

3 ответа

Лучший ответ

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

finalArray = someJsonArray.map(function (obj) {
  return obj.id;
});

< Сильный > Отрывок

var someJsonArray = [
  {id: 0, name: "name", property: "value", therproperties: "othervalues"},
  {id: 1, name: "name1", property: "value1", otherproperties: "othervalues1"},
  {id: 2, name: "name2", property: "value2", otherproperties: "othervalues2"}
];
var finalArray = someJsonArray.map(function (obj) {
  return obj.id;
});
console.log(finalArray);

Вышеупомянутый фрагмент изменен, чтобы заставить его работать.

52
Cerbrus 7 Ноя 2017 в 09:21

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

var arr = [];
for(var i=0; i<someJsonArray.length; i++) {
    arr.push(someJsonArray[i].id);
}
1
Praveen Kumar Purushothaman 16 Дек 2015 в 10:37

Вы могли бы сделать что-то вроде этого:

var len = someJsonArray.length, output = [];
for(var i = 0; i < len; i++){
   output.push(someJsonArray[i].id)
}

console.log(output);
1
Keyboard ninja 16 Дек 2015 в 10:13