首页 > 代码库 > es6学习笔记(1)数组(上)

es6学习笔记(1)数组(上)

最近公司没什么事情,我们老大让我看看es6,小颖就练习了下数组的各个方法,今天先给大家分享一部分.嘻嘻,希望对大家有所帮助.

every方法:

概述:    every() 方法测试数组的所有元素是否都通过了指定函数的测试。

参数:

     callback:用来测试每个元素的函数;

                 element:当前遍历到的元素。

                 index:当前遍历到的索引。

                 array:数组本身。

     thisArg:执行 callback 时使用的 this 值.

描述:

 小颖的理解是这样的: every 方法为数组中的每个元素执行一次 callback 函数,如果当前元素不满足callback 函数中的判断条件则立即返回 false。并且不会再执行every方法;如果该数组中有所有元素都满足callback 函数中的判断条件则立即返回 truecallback 只会为那些已经被赋值的索引调用。不会为那些被删除或从来没被赋值的索引调用。(注意:every 不会改变原数组。)

示例:

     let _everyData1=[1,3,5,10,12].every(function(element, index, array){         console.log(‘当前元素‘+element+‘ ,index:‘+index+‘ ,当前数组:‘+array);         return (element >= 10);      });     console.log(_everyData1);      let _everyData2=[‘1‘,‘3‘,‘5‘,‘10‘,‘12‘].every(function(element, index, array){         console.log(‘当前元素‘+element+‘ ,index:‘+index+‘ ,当前数组:‘+array);         return (element >= 1);      });      console.log(_everyData2);

打印结果:

技术分享

_everyData1之所以是false,是因为数组[1,3,5,10,12]第一个元素就不满足大于10(element >= 10)的条件,所以返回结果是false,index是0,因为遇到了不满足条件的元素所以立即停止不再执行every方法.并且在[1,3,5,10,12],[‘1‘,‘3‘,‘5‘,‘10‘,‘12‘]这两个数组调用every时这两个数组中的元素都可以和数字进行比较.

filter方法:

概述:    filter() 方法使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组。

参数:

     callback:用来测试每个元素的函数,调用时使用参数 (element, index, array)。返回true表示保留该元素(通过测试),false则不保留。;

                 element:当前遍历到的元素。

                 index:当前遍历到的索引。

                 array:数组本身。

     thisArg:可选。执行 callback 时的用于 this 的值。

描述:

 filter 为数组中的每个元素调用一次 callback 函数,并利用所有使得 callback 返回 true 或等价于 true 的值的元素创建一个新数组。callback 只会在已经赋值的索引上被调用,对于那些已经被删除或者从未被赋值的索引不会被调用。那些没有通过 callback 测试的元素会被跳过,不会被包含在新数组中。(注意:filter 不会改变原数组。)

示例:

      function isBigEnough(element) {        return element >= 10;      }      let filtered = [12, 5, 8, 130, 44].filter(isBigEnough);      console.log(filtered);//[12, 130, 44]

find方法:

概述:    如果数组中某个元素满足测试条件,find() 方法就会返回那个元素的值,如果没有满足条件的元素,则返回 undefined。

参数:

     callback:用来测试每个元素的函数,调用时使用参数 (element, index, array)。返回true表示保留该元素(通过测试),false则不保留。;

                 element:当前遍历到的元素。

                 index:当前遍历到的索引。

                 array:数组本身。

     thisArg:可选。执行 callback 时的用于 this 的值。

描述:

 find方法对数组中的每一项元素执行一次callback 函数,直至有一个callback返回true。当找到了这样一个元素后,该方法会立即返回这个元素的值,否则返回undefined。注意callback函数只会在分配了值的数组索引上调用,而不会在已删除或未分配值的索引上调用。(注意: 不会改变原数组。)

示例:

     let _ageData=http://www.mamicode.com/[{age:20,name:‘喵嘞个咪‘},{age:18,name:‘大颖‘},{age:23,name:‘胡亥‘}];      function findName(fruit) {         return fruit.name === ‘大颖‘;      }      console.log(_ageData.find(findName)); //[{{age:18,name:‘大颖‘}]      console.log(_ageData);//[{age:20,name:‘喵嘞个咪‘},{age:18,name:‘大颖‘},{age:23,name:‘胡亥‘}]

 

findIndex方法:

概述:    findIndex()方法用来查找数组中某指定元素的索引, 如果找不到指定的元素, 则返回 -1

参数:

     callback:用来测试每个元素的函数,调用时使用参数 (element, index, array)。返回true表示保留该元素(通过测试),false则不保留。;

                 element:当前遍历到的元素。

                 index:当前遍历到的索引。

                 array:数组本身。

     thisArg:可选。执行 callback 时的用于 this 的值。

描述:

findIndex() 方法对数组中的每一个元素执行一次回调函数直至有一个回调函数返回真值 。如果找到了一个这样的元素, 则 findIndex 将会立刻返回这个元素的索引。否则 findIndex 将会返回 -1。回调函数只有在数组的索引被分配值的时候才会被调用,若是索引被删除或者没有被赋值将不会被调用。(注意: findIndex 不会修改所调用的数组)

示例:

    function isPrime(element, index, array) {        return element>4;      }      console.log( [4, 6, 7, 12].findIndex(isPrime) ); // 1     function isPrime(element, index, array) {        return element>=4;      }      console.log( [4, 6, 7, 12].findIndex(isPrime) ); // 0

 

es6学习笔记(1)数组(上)