在 javascript 中,键值数组存储为对象。 javascript中有数组之类的东西,但它们在某种程度上仍然被认为是对象,请查看这些人的答案-Why can I add named properties to an array as if it were an object?
数组通常使用方括号语法,对象(“key=>value”数组)使用大括号语法,但您可以使用方括号语法访问和设置对象属性,如 Alexey Romanov 所示。
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 这样的语言中,这将被视为具有键值对的多维数组,或数组中的数组。我假设是因为您询问了如何遍历键值数组,您想知道如何获取像上面的人对象这样的对象(键=> 值数组),比如说,不止一个人。
好吧,既然我们知道 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");
});
});
输出 -
我的名字是 Joshua,我是 5 ft 11 的 CEO
我的名字是詹姆斯,我是一名 6 英尺 1 的程序员
我的名字是彼得,我是一名 4 英尺 10 英寸的设计师
我的名字是 Joshua,我是 5 ft 11 的 CEO
请注意,在循环外,我必须使用方括号语法和数字键,因为现在这是一个数字索引的对象数组,当然在循环内,数字键是隐含的。