数组用于遍历的方法

数组中用于遍历的方法

一,for循环

语法:for(let ; ; )

二,for in:常用与遍历对象

语法:for( let i in obj)

三,forEach()

作用:调用数组中的每个元素,并将元素传递给回调函数进行执行,无返回值。

语法:array.forEach(function(currentValue, index, arr));

四,for of:用于遍历值

语法:
for (var value of arr){
console.log(value);
}

注意:for in和for of的区别

for in遍历下标,for of遍历值。

五,map()

作用:用于处理数组,并用return返回结果,结果组成一个新的数组返回。

语法:arr.map(function(value,key,arr){
...

})

六,filter()

作用:是一个过滤函数,需要在循环的时候判断一下是true还是false,是true才会返回原本数组的这个元素。

语法:

let arr1 = [1,2,3];
let arr2 = arr1.filter((value,key,arr) => {
console.log(value) // 1,2,3
console.log(key) // 0,1,2
console.log(arr) // [1,2,3]
return value >= 3 ? false : true;
})
console.log(arr1); // [ 1, 2, 3 ]
console.log(arr2); // [ 1, 2 ]


注意:

数组利用filter加上箭头函数去重
let arr = [1, 2, 2, 3, 4, 5, 5, 6];
let newArr = arr.filter((x, index,self)=>self.indexOf(x)===index)
console.log(newArr)

七,some():

和filter功能相同,不同的是,它返回boolean值,用于检查数组中是否存在某对象.

语法:

if (arr.some(list => list.value === 1)) {
console.log('执行了!')
}


ES6的三个新方法:entries(),keys()和values() —— 用于遍历对象,它们都返回一个遍历器对象,可以和for...of循环进行组合,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。

一,keys():遍历对象的键值,返回一个由键值组成的数组。

作用:获取对象的键值,并返回一个数组。

语法:

let obj = { a: 1, b: 2, c: 3 };

for (let key of Object.keys(obj)) {
console.log(key); // 'a', 'b', 'c'
}
 var obj1 = {"name":"lucas","age":22};
console.log(Object.keys(obj1)) //["name", "age"]

二,values()遍历对象的值,并作为数组返回。

作用:获取对象的值,并作为数组返回。

语法:

let obj = { a: 1, b: 2, c: 3 };
for (let value of Object.values(obj)) {
console.log(value); // 1, 2, 3
}


var obj1 = {"name":"lucas",age:22};
console.log(Object.values(obj1)) //["lucas", 22]

三,entries(),entries方法的一个用处是,将对象转为真正的Map结构。

entries()函数会将 key 和 value 以二维数组的形式都返回。

作用:初始化map结构的时候,可以作为输入。

语法:

var obj2 = {foo:'bar',baz:42};//普通对象
var map2 = new Map(Object.entries(obj2));//entries()处理对象为二维数组并作为map的初始化值。
console.log(map2); //map{"foo" => "bar", "baz" => 42}

补充:

map数据结构是一种对象的解构,对象中的键不再只是字符串,而是任意的数据类型都可以当键,是一种广义的键。

声明map解构:

let m = new Map();//map数据结构有四种方法,set,get,has,delete

m.set(123,'abc');//添加键值对

console.log(m.get(123));//获取值

m.has(123);//-->true查找对象中是否有

m.delete(123);//删除123键值对,成功删除返回true,失败返回false

业精于勤,荒于嬉,行成于思,毁于随~
原文地址:https://www.cnblogs.com/yu-tang/p/12173269.html