#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. да, я знаю, что это не ответ, но я хотел, чтобы автор знал, что массивы не являются обычными объектами.