for-map-forEach-filter-reducer

1、for

        let arr=[1,2,3];
        for(let i=0;i

2、for/in
释:作用于对象

        let obj={name:'qiuyuan',sex:'男',age:'29',birthday:'1991-10-30'};
        for(let item in obj){
            console.log(obj[item]);
        }

3、map
释:map会遍历数组中的元素,并将处理后的结果组成新的数组返回,元数组不受影响
此外:map接受第二个参数,一般 也是一个数组,其作用是改变函数内部的this指向

        let arr=[1,2,3];
        let newAarr=arr.map((i)=>{
            return i*2;
        });
        console.log(newAarr);//[2,4,6]
        console.log(arr);//[1,2,3]
        // 函数的三个参数,元素、序号、原数组
        let newAarr1=arr.map((i,index,array)=>{
            return i*2;
        });

4、forEach
释:forEach的使用方法跟map很像,只不过forEach没有返回值,不需要return,当需要有返回值的时候用map,不需要返回值的时候用forEach,同map,forEach也有第二个参数来改变函数的内部this指向;

5、filter
释:同map,通过return一个判断语句来过滤返回一个由满足条件的元素组成的新数组;同样有第二参数

6、some();every();
释:some也是通过return回一个判断语句,当数组中有一个元素是满足条件的,就返回true,every刚好相反;

7、reduce(); reduceRight();
释:参数一:函数4个形参,1,默认第一个元素,2 默认第二个元素,3,起始位置,4,原数组
参数二:基础值(当有第二个参数的时候,a起始为第二个参数,且c为b的位置);

        let arr=[1,2,3,4,5];
        arr.reduce((a,b,c,d)=>{
            console.log(a,b,c,d);
            return a+b;
        })
        // 1 2 1 [1,2,3,4,5]
        // 3 3 2 [...]
        // 6 4 3 [...]
        // 10 5 4 [...]
        arr.reduce((a,b,c,d)=>{
            console.log(a,b,c,d);
            return a+b;
        },2)
        //2 1 0 (5) [1, 2, 3, 4, 5]
        // 3 2 1 (5) [1, 2, 3, 4, 5]
        // 5 3 2 (5) [1, 2, 3, 4, 5]
        // 8 4 3 (5) [1, 2, 3, 4, 5]
        // 12 5 4 (5) [1, 2, 3, 4, 5]
        function findLongest(entries) {
          return entries.reduce(function (longest, entry) {
            return entry.length > longest.length ? entry : longest;
          },'11');
        }
        findLongest(['aaa', 'bb', 'c']);// ‘aaa’

8、Object.keys();

你可能感兴趣的:(for-map-forEach-filter-reducer)