Javascript преобразует массив объектов в 1 массив

#javascript #arrays #object

#javascript #массивы #объект

Вопрос:

У меня определен этот массив:

 $scope.exportData = [];
 

а затем я выполняю вызов api, и он возвращает 3 объекта в моем массиве.

 [Object, Object, Object] //from Console Log

0: Object
  Name: "Steve"
  Age: 30
  Sex: "M"
1: Object
  Name: "James"
  Age: 25
  Sex: "M"
2: Object
  Name: "Joe"
  Age: 20
  Sex: "M"
 

то, что я хочу здесь сделать, это взять объекты внутри $scope.exportData и превратить их в массивы, чтобы у меня было 5 массивов внутри $scope.exportData примерно так:

 [Array[3], Array[3], Array[3]]
   0: Array[3]
      "Name" : "Steve"
      "Age" : 30
      "Sex" : "M"
   1: Array[3]
      "Name" : "James"
      "Age" : 25
      "Sex" : "M"
   2: Array[3]
      "Name" : "Joe"
      "Age" : 20
      "Sex" : "M"
 

как бы мне это сделать? Спасибо, любая помощь будет оценена

Комментарии:

1. почему вы на самом деле хотите сделать это, имея объект, доступ к которому проще, чем к массиву кластеров.

2. У меня есть код, который проходит через каждый массив и помещает его в csv-файл, поэтому мне было бы проще создать эти объекты в массивах.

3. Вы не можете, массив может иметь только числовые индексы, а не пары ключ / значение, так как тогда это был бы объект.

Ответ №1:

Они пытаются сделать это следующим образом: если данные представляют собой массив объектов, то

 for(var i = 0; i < $scope.exportData.length; i  ) {
    var arr = [];
    for(j in $scope.exportData[i]) {
        arr.push($scope.exportData[i][j]);
    }
    $scope.exportData[i] = arr;
}
 

Комментарии:

1. должен ли я заменить данные на $scope.exportData?

2. Я заменил data.length и (data[i]) на $scope.exportData и заменил data [i] = на newArray, и это в значительной степени работает, просто каждое значение возвращает «Name»:»Steve»» как я могу заставить его иметь только «Steve» в качестве значения?

3. Есть 53 элемента Имя, возраст и пол были просто примером. Я попытался выполнить другое разделение для : но получил ошибку 🙁 undefined не является функцией 🙁

4. Попробуй сейчас … Я думал, там есть только три поля. теперь я изменил для n полей

5. @Бхарат, почему ты используешь arr.slice() ? Должно быть что-то вроде: jsbin.com/yimif/1/edit