遍历数组:
方法1: for 循环;(使用临时变量将数组长度缓存起来,避免重复获取数组长度)
for(var i = 0, leng = arr.length; i < leng;i++){}
方法2:foreach循环;遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE
arr.forEach((item,index,arry)=>{
// item,数组中的当前项;index,当前项的索引;array,原始数组
})
方法3:map循环;有返回值,可以return;可以对当前项进行运算后返回;
var arr = [1,2,3,4,5,6]
var res = arr.map((item,index,arr)=>{
return item * 10
})
console.log(arr); // [1,2,3,4,5,6]
console.log(res); // [10,20,30,40,50,60]
方法4:for...of 循环 ;可以正确相应break, continue, return 语句;
for(var i of arr){}
方法5:filter遍历;不改变原始数组,返回新的数组;
var arr = [1,2,3,4,5]
arr.filter(res=>{
if(res>2){return true}
})
方法6:every遍历; every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true; 在执行的过程中,如果遇到了false的情况,就停止继续往下执行;直接返回false;
var arr = [1,2,3,5,6,7]
var res = arr.every((item,index,arr)=>{
console.log(item,index)
return item > 5
})
console.log(res); // false
方法7:some遍历:some()是对数组中的每一项运行指定函数;该函数对其中任意一项返回true, 就返回true; 返回true就不再往下执行;
var arr = [1,2,3,5,6,7]
var res = arr.some((item,index,arr)=>{
return item > 51
})
console.log(res)
方法8:reduce() 接收一个函数做为累加器;将数字类型的数组中的每一项进行运算;
var arr = [0, 1, 2, 3, 4];
var res = arr.reduce(function(previousValue, currentValue, index, array){
return previousValue + currentValue;
});
console.log(res) // 10
方法9:reduceRight: 该方法类似于reduce();只不过是该方法是从数组的末尾向前做运算;
方法10: find() 返回数组中符合条件的第一个元素;没有就返回undefined;
var arr = [1,2,34,5]
var res = arr.find(item=>{
return item > 2
})
console.log(res) // 34
方法11: findIndex 返回符合条件的第一个元素的下标
var res = [1,2,3].findIndex(x => {
return x == 2
});
console.log(res) // 1
方法12: keys,values,entries
ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历
var arr = [1,3,5,7]
var k = arr.keys()
var v = arr.values()
var e = arr.entries()
for(let item of k){
console.log(item) // 0 1 2 3
}
for(let item of v){
console.log(item) // 1,3,5,7
}
for(let item of e){
console.log(item) // [0,1] [1,3] [2,5] [3,7]
}
遍历对象:
方法1;for ... in
const obj = {
id:1,
name:'zhangsan',
age:18
}
for(let key in obj){
console.log(key + '---' + obj[key])
}
方法二: 1)、Object.keys(obj) 2)、Object.values(obj)
const obj = {
id:1,
name:'zhangsan',
age:18
}
console.log(Object.keys(obj)) // ['id','name','age']
console.log(Object.values(obj)) // ['1','zhangsan','18']
第三种:使用Object.getOwnPropertyNames(obj)
const obj = {
id:1,
name:'zhangsan',
age:18
}
Object.getOwnPropertyNames(obj).forEach(function(key){
console.log(key+ '---'+obj[key])
})