只有一种数据类型可以包含多个值:对象 。数组是对象的一种特殊形式。
对象的形式如下:
{key: value, key: value, ...}
数组的形式如下
[value, value, ...]
数组和对象都有一个key -> value结构。数组中的键必须是数字,而任何字符串都可以用作对象中的键。键值对也称为“属性”。
可以使用点表示法访问对象属性
const value = obj.someProperty;
如果属性名称不是有效的 标识符名称,或者属性名称是变量的值,我们可以使用[]访问对象的属性:
// the space is not a valid character in identifier names
const value = obj[\"some Property\"];
// property name as variable
const name = \"some Property\";
const value = obj[name];
但对于数组,只能使用括号表示法访问数组元素:
const value = arr[5]; // arr.5 would be a syntax error
// property name / index as variable
const x = 5;
const value = arr[x];
示例:访问嵌套数据结构
嵌套数据结构是一个数组或对象,它引用其他数组或对象,即其值为数组或对象。可以通过连续应用点或括号符号来访问这些结构。
这是一个例子:
const data = {
code: 42,
items: [{
id: 1,
name: \'foo\'
}, {
id: 2,
name: \'bar\'
}]
};
假设我们要访问items的第二个name属性值。
下面教大家如何一步一步的获取items的第二个name属性值
我们可以看到data是一个对象,因此我们可以使用点符号来访问它的属性。该items属性访问如下:
data.items
该值是一个数组,要访问其第二个元素,我们必须使用括号表示法:
data.items[1] //注意index从0开始
该值是一个对象,我们再次使用点符号来访问name属性。所以我们最终得到:
const item_name = data.items[1].name;
或者,我们可以使用方括号[]获取,如下:
const item_name = data[\'items\'][1][\'name\'];
在某些情况下,当我们访问对象属性值时返回undefined, 这说明对象/数组根本没有这个属性
const foo = {bar: {baz: 42}};
console.log(foo.baz); // undefined
使用console.log检查对象/数组的结构,您尝试访问的属性实际上在对象的第一层,正确代码如下:
console.log(foo.bar.baz); // 42
如果对象属性名称是动态的或者我们根本不知道它的属性名称,那我们该如何获取对象的值呢? 这时我们可以使用for in:
/**
* 生成示例格式的列表,并且遍历:
* aqiData = {
* \"北京\": 90,
* \"上海\": 40
* };
*/
//之前的赋值操作
var city = document.getElementById(\'aqi-city-input\').value,
num = document.getElementById(\'aqi-value-input\').value;
//这里就不能用.看随后属性访问的比较
aqiData[city] = num;
//随后的遍历操作
for(var city in aqiData) {
alert(city+\":\"+aqiData[city]);//北京:90,上海:40等
} 继续阅读与本文标签相同的文章
上一篇 :
JavaScript变量的作用域讲解
下一篇 :
你们一个个都人工智能了,让PC怎么办?
-
微软建议企业客户卸载KB4520062累积更新
2026-05-14栏目: 教程
-
他让我国芯片研究停滞13年,还骗走11亿研发资金,现状如何?
2026-05-14栏目: 教程
-
健乐教学机器人可开展的教学实训内容
2026-05-14栏目: 教程
-
5G套餐曝光遭“吐槽”,iphone11受追捧,导致苹果11销量比较高
2026-05-14栏目: 教程
-
为什么修电脑的叫自己不要杀毒和清理垃圾?
2026-05-14栏目: 教程
