首页 > 代码库 > es6学习笔记(1)数组(上)
es6学习笔记(1)数组(上)
最近公司没什么事情,我们老大让我看看es6,小颖就练习了下数组的各个方法,今天先给大家分享一部分.嘻嘻,希望对大家有所帮助.
every方法:
概述: every()
方法测试数组的所有元素是否都通过了指定函数的测试。
参数:
callback
:用来测试每个元素的函数;
element
:当前遍历到的元素。
index:当前遍历到的索引。
array
:数组本身。
thisArg
:执行 callback
时使用的 this
值.
描述:
小颖的理解是这样的: every
方法为数组中的每个元素执行一次 callback
函数,如果当前元素不满足
返回 false。并且不会再执行every方法;callback
函数中的判断条件则立即如果该数组中有所有元素都满足
返回 callback
函数中的判断条件则立即true
。callback
只会为那些已经被赋值的索引调用。不会为那些被删除或从来没被赋值的索引调用。(注意: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
将会立刻返回这个元素的索引。否则 findIndex
将会返回 -1。回调函数只有在数组的索引被分配值的时候才会被调用,若是索引被删除或者没有被赋值将不会被调用。
示例:
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)数组(上)