JavaScript学习笔记:ES5数组的一些方法

1.indexOf( )与lastIndexOf( )

indexOf( )方法适用于在数组中查找指定元素的位置,找到第一个匹配元素以后返回其索引,此方法是从数组头部开始搜索,而lastIndexOf( )的搜索方向则是相反。

var a = [2,3,4,5,5,6];
console.log(a.indexOf(5));//3
console.log(a.lastIndexOf(5));//4
console.log(a.indexOf(7));//-1 找不到指定元素,则返回-1

2. forEach( )方法

forEach( )方法用于遍历数组,对数组的每个元素执行一次所设定的函数。参数是一个毁掉函数,有三个参数:

  1. 当前元素(value)
  2. 当前元素的索引值(index)
  3. 整个数组(array)
var a = [1,2,3,4];
a.forEach(function(v,i,arr){
    console.log(v +'['+ i +']'+ ' -> '+arr)
});
//"1[0] -> 1,2,3,4"
//"2[1] -> 1,2,3,4"
//"3[2] -> 1,2,3,4"
//"4[3] -> 1,2,3,4"

3. map( )方法

map( )方法是创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。
如输出一个数组,由原数组中每个元素的平方的值组成:

var a = [2,3,4];
var b = a.map(function(x){
    return  x*x;
});//[4,9,16]

4. every( )方法

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

function ifBigger(a) {
    return (a>0);
}
var a = [3,4,5,6,7];
console.log(a.every(ifBigger));//true 检验a数组里面的所有元素是否大于0;
var b = [2,3,4,-2,6];
console.log(b.every(ifBigger));//false有一个元素不符合函数要求则返回false;

5. some( )方法

some( )方法与every方法类似,都是检测元素是否通过了指定函数的测试,但是区别在于:every()方法是当全部元素都返回true,才返回true;而some()方法则只要有一个元素true,都返回true。例子类似就不举了。

6. filter( )方法

filter( )方法用于创建一个新的数组,其包含符合所提供函数测试的所有元素。

var arr = [3, -1,  2,  7, 'bb'];
var result = arr.filter(function(value){
    return value>0;//检测传入数组中的值是否大于0并把符合条件的元素return出来组成新的数组
});
console.log(result);//[3,2,7]

6. reduce( )方法

reduce() 方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。还没有掌握

var arr = [1,2,3];
console.log(arr.reduce(fucntion(sum,value)
    return sum+value;
));//6把数组里面的所有元素相加

待补充...

你可能感兴趣的:(JavaScript学习笔记:ES5数组的一些方法)