Вопрос о преобразовании массива

#javascript

#javascript

Вопрос:

У меня есть массив ниже,

 var array = {
    "Id":[1,2,3],
    "Name":["one","two","five"],
    "row":[8,9,7]
}
  

но я хочу преобразовать его в

 var array2 = 
{"data":
    [
    {"Id":1,"Name":"one","Row:8"},
    {"Id":2,"Name":"two","Row:9"},
    {"Id":3,"Name":"five","Row:7"},
    ]
}
  

Возможно ли это?

Ответ №1:

Это должно сделать это:

 // make sure the new object is initialized
var array2 = { data: [] };
// Count the number of items in array.Id and start iterating
for (var i=0,t=array.Id.length; i < t; i  ) {
   // Note that array.Id = [1,2,3] does not result in corresponding keys
   // array.Id[0] corresponds to value 1!
   array2.data.push({
       Id: array.Id[i],
       Name: array.Name[i],
       Row: array.Row[i]
   });
}
  

Ответ №2:

 var array2 = {data: []};
for (i in array.Id) {
    array2.data.push({
        Id: array.Id[i],
        Name: array.Name[i],
        row: array.row[i]
    });
}
  

Не тестировал это

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

1. Нет, это не так. array [i] здесь не имеет смысла

Ответ №3:

это не массив. это объект.

 var myArr = [1,2,3]; //Array definition


var myObj = {test:"1",test2:"2"}; //Object Definition



var array = [1,[1,2,3]]; // multidimensional array 
  

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

1. но, на самом деле,object тоже является многомерным массивом?

2. нет, это не так. Я добавил пример многомерного массива. массивы отличаются от объектов.

3. Массивы в Javascript представляют собой определенный тип объектов с автоматически увеличивающимися номерами для ключей. Вы используете объекты, но не массивы.

4. Технически практически все в JavaScript является объектом, включая массивы . Тем не менее, довольно ясно, что хочет сделать OP, и этот ответ на самом деле не является ответом.

5. да, я знаю, что это не ответ, но я хотел, чтобы автор знал, что массивы не являются обычными объектами.