最实用的JS数组函数整理(3)
indexOf / lastIndexOf
数组.indexOf(元素); // 给元素,查索引(从前往后)
数组.lastIndexOf(元素); // 给元素,查索引(从后往前)
例:
var arr = ["a","b","c","d","c","b","b"];
console.log(arr.indexOf("b")); // 1 查到以后立刻返回
console.log(arr.lastIndexOf("b")); // 6 找到以后立刻返回
console.log(arr.indexOf("xxx")); // -1; 查不到就返回-1;
数组迭代(遍历)
every()
对数组中每一项运行回调函数,如果都返回true,every返回true,
如果有一项返回false,则停止遍历 every返回false;不写默认返回false
像保镖失误一次,游戏结束!!!
例:
1. var arr = [111,222,333,444,555];
arr.every(function (a,b,c) {
console.log(a); //元素
console.log(b); //索引值
console.log(c); //数组本身;
console.log("-----"); //数组本身;
//数组中元素赋值:c[b] = 值; a=有时候无法赋值;
return true;
});
2. //every返回一个bool值,全部是true才是true;有一个是false,结果就是false
var bool = arr.every(function (element, index, array) {
//判断:我们定义所有元素都大于200;
//if(element > 100){
if(element > 200){
return true;
}else{
return false;
}
})
alert(bool); //false
filter()
// 对数组中每一项运行回调函数,该函数返回结果是true的项组成的新数组
// 新数组是有老数组中的元素组成的,return为ture的项;
例:
var arr = [111,222,333,444,555];
var newArr = arr.filter(function (element, index, array) {
//只要是奇数,就组成数组;(数组中辨别元素)
if(element%2 === 0){
return true;
}else{
return false;
}
})
console.log(newArr); // [222, 444]
forEach()
// 和for循环一样;没有返回值;
例:
var arr = [111,222,333,444,555];
var sum = 0;
var aaa = arr.forEach(function (element,index,array) {
console.log(element); // 输出数组中的每一个元素
console.log(index); // 数组元素对应的索引值
console.log(array); // 数组本身 [111, 222, 333, 444, 555]
sum += element; //数组中元素求和;
});
console.log(sum); // 数组元素加起来的和
console.log(aaa);//undefined;没有返回值 所以返回undefined
map()
// 对数组中每一项运行回调函数,返回该函数的结果组成的新数组
// return什么新数组中就有什么; 不return返回undefined; 对数组二次加工
例:
var arr = [111,222,333,444,555];
var newArr = arr.map(function (element, index, array) {
if(index == 2){
return element; // 这里return了 所以下面返回的值是333
}
return element*100; // 返回的元素值都乘上100后的值
})
console.log(newArr); // [11100, 22200, 333, 44400, 55500]
内容版权声明:除非注明,否则皆为本站原创文章。
