Object.keys
语法:Object.keys(obj)
参数: obj 要返回枚举属性的对象
返回的值是以字符串数组形式的对象属性名
let obj = {
name: '张三',
age: 11,
sex: '男'
}
const attribute = Object.keys(obj)
console.log(attribute) // ['name', 'age', 'sex']
Object.values
Object.values的用法和Object.keys是一样的.从字面意思就能看出,前者是枚举出被枚举对象的每一项的属性名,而后者是属性值
let obj = {
name: '张三',
age: 11,
sex: '男'
}
const attribute = Object.keys(obj)
console.log(attribute) // ['张三', 11, '男']
for…in
语法:for(variable ,object)
variable: 对象每一项的属性名
object:被枚举的对象(非symbol类型)
注: 如果用来遍历数组,得到的是数组每一项的索引
let obj = {
name: '张三',
age: 11,
sex: '男'
}
for (var k in obj) {
console.log(k);
// 输出: // name
// age
// sex
console.log(obj[k]);// 这里可以理解为 obj[属性名] 例如:obj['name'] 打印的就是"张三"
// 输出: // 张三
// 11
// 男
}
for…of
语法:for(variable of iterable)
variable: 被枚举对象中的每一个值
iterable:被枚举的对象(注:这里说的对象不是指对象类型的数据)
注意:for…of 可以遍历数组,但是不可以遍历对象类型的数据
let arr = [1, 2, 3] // Array
for (var k of arr) {
// console.log(k); // 1 2 3 数组中每一项的值
k += 1
console.log(k) // 2 3 4 进行运算后的值
}
let str = "red" // string
for (var k of str) {
console.log(k) // r e d 输出每一个字母
}