В javascript массив значений ключей хранится как объект. В javascript есть такие вещи, как массивы, но они все еще считаются объектами, проверьте ответ этого парня - Почему я могу добавить именованные свойства в массив, как если бы это был объект?
Массивы обычно отображаются с использованием синтаксиса с квадратными скобками, а объекты (массивы "key => value") - с использованием синтаксиса с фигурными скобками, хотя вы можете обращаться к свойствам объектов и устанавливать их с помощью синтаксиса в квадратных скобках, как показал Алексей Романов.
Массивы в javascript, как правило, используются только с числовыми, автоматически увеличиваемыми ключами, но объекты javascript могут содержать пары именованных ключей, функций и даже другие объекты.
Простой массив, например.
$(document).ready(function(){
var countries = ['Canada','Us','France','Italy'];
console.log('I am from '+countries[0]);
$.each(countries, function(key, value) {
console.log(key, value);
});
});
Выход -
0 "Канада"
1 "Нас"
2 "Франция"
3 "Италия"
Мы видим выше, что мы можем зациклить числовой массив, используя функцию jQuery.each, и получить доступ к информации вне цикла, используя квадратные скобки с цифровыми клавишами.
Простой объект (json)
$(document).ready(function(){
var person = {
name: "James",
occupation: "programmer",
height: {
feet: 6,
inches: 1
},
}
console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation);
$.each(person, function(key, value) {
console.log(key, value);
});
});
Вывод -
Меня зовут Джеймс, и я программист 6 футов 1
имя Джеймс
занятие программистом
высота Объект {футы: 6, дюймы: 1}
В таких языках, как php, это будет считаться многомерным массивом с парами ключ-значение или массивом в массиве. Я предполагаю, потому что вы спросили о том, как пройти через массив значений ключа, вы хотели бы знать, как получить объект (массив значений =>), такой как объект person выше, чтобы иметь, скажем, более одного человека.
Итак, теперь, когда мы знаем, что массивы javascript обычно используются для числовой индексации, а объекты более гибко для ассоциативной индексации, мы будем использовать их вместе для создания массива объектов, через которые мы можем циклически проходить, например: *
массив JSON (массив объектов) -
$(document).ready(function(){
var people = [
{
name: "James",
occupation: "programmer",
height: {
feet: 6,
inches: 1
}
}, {
name: "Peter",
occupation: "designer",
height: {
feet: 4,
inches: 10
}
}, {
name: "Joshua",
occupation: "CEO",
height: {
feet: 5,
inches: 11
}
}
];
console.log("My name is "+people[2].name+" and I am a "+people[2].height.feet+" ft "+people[2].height.inches+" "+people[2].occupation+"\n");
$.each(people, function(key, person) {
console.log("My name is "+person.name+" and I am a "+person.height.feet+" ft "+person.height.inches+" "+person.occupation+"\n");
});
});
Выход -
Меня зовут Джошуа, я генеральный директор 5 футов 11
Меня зовут Джеймс, и я программист 6 футов 1
Меня зовут Питер, и я 4 фута 10 дизайнеров
Меня зовут Джошуа, я генеральный директор 5 футов 11
Обратите внимание, что вне цикла я должен использовать синтаксис в квадратных скобках с числовым ключом, потому что теперь это числовой индексированный массив объектов, и, конечно, внутри цикла подразумевается числовой ключ.