这是我的目标:
Customer{"id": "0001", "name": "ivan" , "country" {"city" : "Peru"}}
那么:使用brakets的正确形式是什么? 每个上下文都在jquery中:
$。每个(数据,函数(索引,数据){ }
1° data["country"["city"]] >> the result should be "Peru"
2° data["country"]["city"] >> the result should be "Peru"
或者什么是正确的形式?
答案 0 :(得分:2)
我相信你说你的目标是:
Customer = {
id: "0001",
name: "ivan",
country: {
city : "Peru"
}
}
在这种情况下,您的语法将是
Customer.country.city
或
Customer["country"]["city"]
或这两者的任何组合
另请注意,Customer[country[something]]
也可以是有效的语法,但似乎不适用于您的情况
Customer = {
id: "0001",
name: "ivan",
country: {
city : "Peru"
}
}
country = {
key: 'country'
}
Customer[country['key']]['city']
还会返回您的城市Peru
答案 1 :(得分:1)
这不是JavaScript对象:
Customer[id: "0001"; name: "ivan" ; country [city : "Peru"]]
这是JavaScript对象中的一个对象:
var customer = {
id: "0001",
name: "ivan",
country: {
finland: {
city: "Helsinki"
}
}
};
您可以使用它:
console.log(customer.country.finland.city);
或者这个:
console.log(customer['country']['finland']['city']);
或混合......
console.log(customer['country'].finland.city);
..并且可以自由添加实际国家,而不仅仅是城市,但我想这篇文章证明了这一点,您可以使用点符号customer.country.finland
或撇号customer['country']['finland']
来检索值。但是,如果您使用数字作为JavaScript对象键,如下所示:
var customer = {
1: "Mauno"
};
您只能使用撇号检索它:customer['1']
尝试像customer.1
一样使用它会导致JavaScript错误。