1.Array.isArray(obj) 检测数组
console.log(Array.isArray([])); //true
console.log(Array.isArray({})); //false
// 返回一个一个boolean值。是的就是true,错误就是false
2. .indexOf(element)/ . lastIndexOf(element) 找到第一个指定元素的位置返回其索引
.indexOf(element):indexOf从头至尾搜索
. lastIndexOf(element):lastIndexOf反向搜索
var arr = [1,3,4,5,4,3,2,1];
console.log(arr.indexOf(1)); //0
console.log(arr.lastIndexOf(1)) //7
console.log(arr.indexOf('a')) //-1 如果找不到就返回-1
3. .forEach() 遍历数组
首先我们了解一下.forEach()的结构
var arr = ['a','b','c','d'];
arr.forEach(function(e,i,arr){
console.log(e);
})
// "a" "b" "c" "d"
arr.forEach(function(e,i,arr){
console.log(i);
})
// 0,1,2,3
arr.forEach(function(e,i,arr){
console.log(arr);
})
// ['a','b','c','d']
// ['a','b','c','d']
// ['a','b','c','d']
// ['a','b','c','d']
可以看出.forEac()这个方法内部需要传入一个匿名函数,匿名函数有三个需要传入三个参数,他们分别代表了数组元素,索引,和数组,这样简单的使用一下
var arr = [-1,-2,32,15,-8];
var arrNew = [];
arr.forEach(function(e,i,arr){
e < 0 ? e = -e : e;
arrNew.push(e);
})
console.log(arrNew) // [1, 2, 32, 15, 8]
4..every(function(element, index, array)) / .some(function(element, index, array))
.every(function(element, index, array)) 所有函数的每个回调函数返回true的时候才会返回true,遇到一个false的时候终止执行,返回false
.some(function(element, index, array)) ‘存在’一个ture的时候返回ture
有点晦涩,我们举个例子
//效果是我们判定这个数组全是正数 使用.every
var arr = [1,58,125,-12,458,12];
var Boon = arr.every(function(e,i,arr){
return e > 0;
})
console.log(Boon) //false
//效果是我们判定这个数组是否有一个负数 使用.some
var arr = [1,58,125,-12,458,12];
var Boon = arr.some(function(e,i,arr){
return e < 0;
})
console.log(Boon) // ture
***当然,这里面的匿名函数的参数和.forEach是一样的
5..map(function(element))
和.forEach很类似,遍历数组,回调函数组成一个新的数组返回,原数组不变
var arr = ['a','b','c','d','e']
var arrNew = [] ;
arr.map(function(e){
e = e + '1';
arrNew.push(e)
})
console.log(arr) // ['a','b','c','d','e'] 原数组不变
console.log(arrNew) // ["a1", "b1", "c1", "d1", "e1"]
6..filter(function(element))
返回数组的一个子集,回调函数用于逻辑判断是否返回,返回true则把当前元素加入到返回数组中,false则不加新数组只包含返回true的值,索引缺失的不包括,原数组保持不变
var a = [1, 2, 3, 4, 5, 6]
console.log(a.filter(function(e){
return e % 2 == 0;
})) // [2, 4, 6]
console.log(a) //[1, 2, 3, 4, 5, 6]
7..reduce(function(v1, v2), value) / .reduceRight(function(v1, v2), value)
遍历数组,调用回调函数,将数组元素组合成一个值,reduce从索引最小值开始,reduceRight反向,方法有两个参数,value可选
var a = [1, 2, 3, 4, 5, 6];
console.log(a.reduce(function(v1,v2){
return v1 + v2;
}),100) //121
//就是将数组的第一个元素和第二个元素进行相加,在原数组中删除刚才的两个相加元素,添加刚才的得数。以此计算,最后在加100