У 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, це вважатиметься багатовимірним масивом з парами ключових значень або масивом у масиві. Я припускаю, тому що ви запитали про те, як провести цикл через масив ключових значень, ви хочете знати, як отримати об'єкт (key => масив значень), як об'єкт людини, який має, скажімо, більше однієї людини.
Ну а тепер, коли ми знаємо, що масиви 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
Зауважте, що за межами циклу я повинен використовувати синтаксис квадратної дужки з числовим ключем, оскільки це тепер масив об'єктів з числовим індексом, і, звичайно, всередині циклу мається на увазі числовий ключ.