数组es6方法总结

//--------------------------indexOf(n) lastIndexOf(n)
//参数:要查找的字符
//功能:跟字符串查找一样,查找指定元素是否存在,如果存在,返回索引值,如果不存在返回-1
//返回值:返回n在arr数组中的索引值
//是否改变原数组:没有

// var arr = [1,2,3,4,3];
// var a = arr.indexOf(3);
// console.log(a);//2
// console.log(arr);//[1, 2, 3, 4,3]

// var b = arr.indexOf(22);
// console.log(b);//-1
// console.log(arr);//[1, 2, 3, 4,3]

// var c = arr.lastIndexOf(3);
// console.log(c);//4
// console.log(arr);//[1, 2, 3, 4, 3]

//----2. 迭代方法----01.arr.forEach( )
// 迭代(遍历)

// 参数:回调函数
// 功能:遍历(回调函数内部的打印结果是数据区分map方法回调函数内部ruturn,外部打印该方法的返回值是一个数组)
// 返回值:undefined
// 是否改变原数组:没有
// 回调函数的返回值造成了什么影响:没有影响

//第一个参数(回调函数):function(value, index, arr){};
// var arr = [1,2,3,4];
// var a = arr.forEach(function(value,index,arr){
//     console.log(value,index,arr);
//     return "hello"
// });
// console.log(a);
// 1 0 (4) [1, 2, 3, 4]
// 2 1 (4) [1, 2, 3, 4]
// 3 2 (4) [1, 2, 3, 4]
// 4 3 (4) [1, 2, 3, 4]
// undefined


// var arr = [20,13,11,8,0,11];
// var min = arr[0];
// arr.forEach(function(value,index,array){
//     //练习一
//     if(value%2)
//     console.log(value);// 13  11  11
//     //练习二
//     if(value

//-----------------------------02、arr.map( )
// 参数:回调函数
// 功能:遍历 可有运算之后的返回数组
// 返回值:数组,数组内是,每个回调函数的返回值
// 是否改变原数组:没有
// 回调函数的返回值造成了什么影响:被放在了map最终返回的数组内

// var arr = [1,2,3]
// var a = arr.map(function(value,index,array){
//     console.log(value,index,array);
//     //return "hello" // (3) ["hello", "hello", "hello"]
//     return value * 2//(3) [2, 4, 6]
//     //return value //(3) [1, 2, 3]
//     //return array//(3) [Array(3), Array(3), Array(3)]
// })
// console.log(a);
// 1 0 (3) [1, 2, 3]
// 2 1 (3) [1, 2, 3]
// 3 2 (3) [1, 2, 3]

//-----------------------------------03、arr.filter( )
// 参数:回调函数
// 功能:可以过滤值,并返回到一个新数组中
// 返回值:数组,数组内是满足某个筛选之后的值
// 是否改变原数组:没有
// 回调函数的返回值造成了什么影响:被放在了filter最终返回的数组内

// var arr = [1,2,3,4];
// var a = arr.filter(function(value,index,array){
// //     return value > 1//(3) [2, 3, 4] 返回值大于1的数组
//        return value%2//(2) [1, 3] 返回奇数数组

// })
// console.log(a);
// console.log(arr);//[1, 2, 3, 4]

//------------------------------04、arr.some( )
// 参数:回调函数
// 返回值:布尔值,只要有一个满足,就返回true
// 功能:遍历数组中是否有符合条件的值,只要有符合,那么就是true,同时停止遍历,
// 是否改变原来数组:否
// 回调函数的返回值造成了什么影响:true/false

// var arr = [1,2,3];
// var a = arr.some(function (value,index,array) {
//         //return 2;   //true
//         return value>2//true
// })
// console.log(a);
// console.log(arr);//(3) [1, 2, 3]

// var arr = [{q:1},{w:2},{e:3}];
// var x = 3;
// var i ;
// var a = arr.some(function(value,index){
//     i = index;
//     return value.e == x
// })
// console.log(a);
// console.log(i);//return是关于内容的比较式,则index会输出相应索引

//------------------------------------------05、arr.every( )
// 参数:回调函数
// 返回值:布尔值,所有条件都符合才返回true
// 功能: 遍历数组中是否有符合条件的值,必须全部符合,都是true,才是true,如果有一个false,那么就是false,同时停止遍历
// 是否改变原来数组:否

// var arr = [1,2,3,4];
// var a = arr.every(function (value,index,array) {
//     //return value<5;//true
//     return value<4//false
// })
// console.log(a);
// console.log(arr);//(4) [1, 2, 3, 4]

3、归并方法
//------------------------01、arr.reduce()
//------------------------02、reduceRight()
//reduce()回调函数有四个参数,
//第一个参数为:之前计算过的值,
//第二参数为:之前计算过的值的下一个值
//第三个参数:当前索引
//第四个参数为:当前数组对象
//功能:类似递归,可以求和之类的操作
//reduce()和reduceRight()类似,只是执行方向不同,
//reduce()从数组的开头往后递归
//reduceRight()从数组的末尾往前递归

// var arr = [13,2,3,4,11];
// var a = arr.reduce(function(prev,next,index,array){
//     console.log(prev+'-----'+next+'-----'+index+'-------'+array);
//     return prev+val
    
// })
// console.log(a);
//13-----2-----1---------13,2,3,4,11
//15(和)-----3-----2---------13,2,3,4,11
//18(和)-----4-----3---------13,2,3,4,11
//22(和)-----11-----4---------13,2,3,4,11
//33(和)

// var arr = [1,2,3,4]
// var a = arr.reduceRight(function(prev,next,index,array){
//     console.log(prev+'-----'+next+'-----'+index+'-------'+array);
//     //return prev + next
    
// })
// console.log(a);
//4-----3-----2-------1,2,3,4
//7(和)-----2-----1-------1,2,3,4
//9(和)-----1-----0-------1,2,3,4
//10(和)

你可能感兴趣的:(javascript)