javascript如何获取数组和对象的值
时间:2017-07-28
JavaScript只有一种数据类型可以包含多个值,即对象Object。数组只是对象的一种特殊形式,本文章向大家介绍javascript如何获取数组和对象的属性值,需要的朋友可以参考一下。
JavaScript只有一种数据类型可以包含多个值:对象Object。数组是对象的一种特殊形式。
对象的形式如下:
{key: value, key: value, ...}
数组的形式如下
[value, value, ...]
数组和对象都有一个key -> value
结构。数组中的键必须是数字,而任何字符串都可以用作对象中的键。键值对也称为“属性”。
可以使用点表示法访问对象属性
const value = obj.someProperty;
如果属性名称不是有效的JavaScript 标识符名称,或者属性名称是变量的值,我们可以使用[]访问对象的属性:
// 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 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 编码效率提升之Pycharm活动模板(Live Templates )
- crictl调试Kubernetes节点
- leetcode哈希表之好数对的数目
- Python处理excel的强大工具-openpyxl
- Pycharm最高效的快捷键集合
- 关于Python循环,看这一篇就够了
- Python新手常见错误汇总|附代码检查清单
- 入门快速安装ElasticSearch
- Kubernetes强制删除Terminating的ns
- 如何使用慢查询快速定位执行慢的 SQL?
- 前端路由实现原理
- 模拟虚拟dom生成实际dom
- Promise教程之产房里生孩子的故事
- 一个现实生活中的例子让你理解Promise的使用场景
- react 跨级组件传参方式 context方式的传参