遍历数组
forEach
1)跳过数组空缺元素
2)无返回值
var colors = ["red", "blue", "grey"]; colors.forEach(function(item, index) { console.log(index + "-" + item) //0-red 1-blue 2-grey });
for...in
1)处理下标为字符串的数组
var arr1 = new Array();
arr1['a'] = "xhaja";
arr1['b'] = "asda"
for(var key in arr1) {
console.log(key) //a , b
console.log(arr1[key]) // xhaja , asda
}
while / do while
for
for(var i=0 ; i< arr.length ; i++) { }
map
1)可用于每个数组元素的运算
2)不改变原数组,返回与原数组长度一样的新数组
var arr = [1,2,3]; var result = arr.map(function(val){ return val*2; }) console.log(result); // [2,4,6]
filter
1)可用于数组元素条件判断
2)不改变原数组,返回符合条件元素的新数组
var arr = [1,2,3];
var result = arr.map(function(val){
return val>1;
})
console.log(result); // [2,3]
every / some
1)可用于数组元素条件判断
2)但只返回 boolean 值
every :只返回 boolean 值 —— 当每个数组元素 “全部 ” 符合条件,才返回 true
some :当 “只要有一个” 数组元素符合条件,就返回 true
find / findIndex
1)可用于数组元素条件判断
2)返回一个 第一个符合条件 的数组元素值,没有返回undefined;f
indIndex 返回的是数组下标
var s = [1,2,3,5]; var result = s.find(function(val){ return val>=2 }) console.log(result) //2
reduce
1)可用于将数组元素进行递进组合,返回一个值
2)第1次调用:第一个参数是初始值,第二个参数是第一个数组元素
第2次调用:第一个参数是上一次调用的返回值,第二个参数是下一个数组元素
arr[1,2,3]; var result = arr.reduce(function(a,b){ return a+b; }) console.log(result) // 6
设置初始值:
arr[1,2,3];
var result = arr.reduce(function(a,b){
return a+b;
},60)
console.log(result) // 66