JavaScript语言核心—Third days(accessories)

ECMAScript5 Array新增的方法

Array.isArray(element):这是Array对象的一个静态函数,用来判断一个对象是不是数组。

 

var a = new Array(123);
var b = new Date();
console.log(Array.isArray(a));          //true
console.log(Array.isArray(b));          //false

 

.indexOf(element) / .lastIndexOf(element):这两个方法用于查找数组内指定元素位置,并返回索引,没有找到返回-1。

。indexOf(item,start):接受两个参数,item:查找的元素 start:字符串开始检索的位置

。lastIndexOf(item,start):接受两个参数,item:查找的元素 start:字符串开始检索的位置

。对原数组不做改变

var a = new Array(1,2,3,4,5,6,2);
console.log(a.indexOf(2));             //返回 1
console.log(a.lastIndexOf(2));          //返回 6

.forEach(element,index,array):遍历数组,参数为一个回调函数,回调函数有三个参数:当前元素、元素索引、整个数组。

var a = new Array(1,2,3,4,5,6);
a.forEach(function(element,index,array){
       array[index] = element+1; 
});
console.log(a);                     //[2,3,4,5,6,7]

.every(function(element,index,array)) / .some(function(element,index,array)):这两个函数类似于离散数学中的逻辑判定,回调函数返回一个布尔值。

every 是"所有"函数的每个回掉函数都返回true的时候才会返回true,当遇到false的时候终止执行,返回false;

some 函数是"存在"有一个回调函数返回true的时候终止执行并返回true,否则返回false。

在空数组上调用every返回true,some返回false。

var a = new Array(1,2,3,4,5,6);
console.log(a.every(function(element,index,array){
         console.log(index+":"+element);
         return element < 5;
}));
/*0:1 1:2 2:3 3:4 4:5 false*/
var a = new Array(1,2,3,4,5,6);
console.log(a.some(function(element,index,array){
         console.log(index+":"+element);
         return e>4;
}));
/*0:1 1:2 2:3 3:4 4:5 true*/

.map(function(elemrnt)):与forEach类似,遍历数组,回调函数返回值组成一个新数组返回,新数组索引结构和原数组一致,原数组不变。

var a = new Array(1,2,3,4,5,6);
console.log(a.map(function(element){
         return element*element;
}));               //[1,4,9,16,25,36]
console.log(a);     //[1,2,3,4,5,6]

.filter(function(element)):返回数组的一个子集,回调函数用于逻辑判断是否返回,返回true则把当前元素加入到返回数组中,false则不加,新数组只包含返回true的值,索引缺失的不包括,原数组保持不变。

var a = new Array(1,2,3,4,5,6);
console.log(a,filter(function(element){
        return element%2 == 0;
}));              //[2,4,6]
console.log(a);    //[1,2,3,4,5,6]

.reduce(function(v1,v2),value) / .reduceRight(function(v1,v2).value):遍历数组,调用回调函数,将数组元素组合成一个值,reduce从索引最小值开始,reduceRight反向,方法有两个参数。

1.回调函数:把两个值合为一个,返回结果

2.value,一个初始化值,可选

var a = new Array(1,2,3,4,5,6);
console.log(a,reduce(function(v1,v2){
         return v1+v2;
}));             //返回 21
console,log(a,reduceRight(function(v1,v2){
         return v1-v2;
},100));         //返回 79

 

总结:知识的积累在于归纳和总结

 

posted @ 2017-05-03 10:59  0_0墨眉  阅读(211)  评论(0编辑  收藏  举报