Как только вы десериализовали данные (например, у вас есть myData
, который является объектом), вы можете перебрать его ключи, используя for..in
, а затем создать массив, который объединяетключи и значения:
var myData, dataArray, key;
myData = $.parse(JSON(data));
dataArray = [];
for (key in myData) {
dataArray.push(key); // Push the key on the array
dataArray.push(myData[key]); // Push the key's value on the array
}
Поскольку myData
является результатом десериализации JSON в data
, мы знаем, что myData
является универсальным объектом (например, просто {}
в отличие отnew Foo
или что-то в этом роде), поэтому нам даже не нужно hasOwnProperty
.Если бы мы этого не знали, а хотели только перечислить myData
собственные ключи и значения, мы добавили бы проверку hasOwnProperty
:
var myData, dataArray, key;
myData = $.parse(JSON(data));
dataArray = [];
for (key in myData) {
if (myData.hasOwnProperty(key)) {
dataArray.push(key); // Push the key on the array
dataArray.push(myData[key]); // Push the key's value on the array
}
}
Нет никакой причины делать это в вашем случае, если только кто-то не копался с Object.prototype
(в этом случае, отведите их за лесной сарай, дайте им серьезное сокрытие, а затем попросите их написать: «Я не будухулить с Object.prototype
несколько сотен раз на доске), но всякий раз, когда вы используете for..in
, всегда хорошо остановиться и подумать: а) гарантированно ли объект ванильный, и б) если нет, вы хотите толькосвои собственные свойства, или вы также хотите, чтобы он наследовал?