最实用的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]
内容版权声明:除非注明,否则皆为本站原创文章。