1、js遍历对象
(1)使用Object.keys()遍历
返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性)。
var obj = {
name:'pengpeng',
age:18,
sex:'女',
sno:666
}
Object.keys(obj).forEach(function(key){
console.log(key,obj[key]);
});
//name pengpeng
//age 18
//sex 女
//sno 666
console.log(Object.keys(obj));
//["name","age","sex","sno"]
(2)使用for…in…遍历
循环遍历对象自身的和继承的可枚举属性(不含Symbol属性)。
var obj = {
name:'pengpeng',
age:18,
sex:'女',
sno:666
}
for(var i in obj){ //这里i指的是每一项的索引
console.log(i,obj[i]);
}
//name pengpeng
//age 18
//sex 女
//sno 666
(3)使用Object.getOwnPropertyNames(obj)遍历
返回一个数组,包含对象自身的所有属性(不含Symbol属性,但是包括不可枚举属性)。
var obj = {
name:'pengpeng',
age:18,
sex:'女',
sno:666
}
Object.getOwnPropertyNames(obj).forEach(function(key){
console.log(key,obj[key]);
});
//name pengpeng
//age 18
//sex 女
//sno 666
console.log(Object.getOwnPropertyNames(obj));
//["name","age","sex","sno"]
(4)使用Reflect.ownKeys(obj)遍历
返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举。
var obj = {
name:'pengpeng',
age:18,
sex:'女',
sno:666
}
Reflect.ownKeys(obj).forEach(function(key){
console.log(key,obj[key]);
});
//name pengpeng
//age 18
//sex 女
//sno 666
console.log(Reflect.ownKeys(obj));
//["name","age","sex","sno"]
2、js遍历数组
(1)使用forEach遍历
forEach()方法接受一个函数作为参数
var arr = [1,2,3,4]
arr.forEach(function(val, index) {
console.log(index,val);
});
//0 1
//1 2
//2 3
//3 4
(2)使用for…in…遍历
var arr=["张三","李四","王五","赵六"];
for (var i in arr){
console.log(i,":",arr[i]);
}
(3)使用for-of遍历
不仅支持数组,还支持大多数类数组对象,例如DOM NodeList对象;
也支持字符串遍历,它将字符串视为一系列的Unicode字符来进行遍历。
var arr=["张三","李四","王五","赵六"];
for (var value of arr){
console.log(value);
}
参考文档:https://blog.csdn.net/w405722907/article/details/84028567