JS之遍历数组,对象的方法

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

猜你喜欢

转载自blog.csdn.net/weixin_40736319/article/details/89388798