ES5中 array操作 菜鸟学习笔记

ES5中新增了写数组方法,如下:

         forEach (js v1.6)
         map (js v1.6)
         filter (js v1.6)
         some (js v1.6)
         every (js v1.6)
         indexOf (js v1.6)
         lastIndexOf (js v1.6)
         reduce (js v1.8)
         reduceRight (js v1.8)



1) /forEach////

参数

定义

array1

必选。 一个数组对象。

callbackfn

必选。 最多可以接受三个参数的函数。 对于数组中的每个元素,forEach 都会调用callbackfn 函数一次。

thisArg

可选。 callbackfn 函数中的 this 关键字可引用的对象。 如果省略 thisArg,则 undefined将用作 this 值。

回调函数的参数如下所示。

回调参数

定义

value

数组元素的值。

index

数组元素的数字索引。

array1

包含该元素的数组对象。


         这个。。我觉得不用说了吧= =上代码吧
    var a1= [11,22,33];
    a1.forEach(function(
            value, //当前遍历到的元素值
            index, //当前遍历到的元素的索引
            array  //当前元素所在的数组
            ){
         console.log(value,index,array)  ;
//       output
//       11 0 [11, 22, 33]
//       18 22 1 [11, 22, 33]
//       18 33 2 [11, 22, 33]
    })   
    使用第三个参数thisArg的例子
var obj  = {
    hehe:function(value,index){
          console.log(value,index,this.pow(value))
    },
    pow:function(x){
          return x*x
    }
} ;
var tt = [8, 3, 9, 2];
tt=tt.forEach(obj.hehe,obj);
console.log(tt);
//8 0 64
//3 1 9
//9 2 81
//2 3 4


2)   /map /
也是遍历 但是有返回值

参数

定义

array1

必选。 一个数组对象。

callbackfn

必选。 最多可以接受三个参数的函数。 对于数组中的每个元素,map 方法都会调用callbackfn 函数一次。

thisArg

可选。 callbackfn 函数中的 this 关键字可引用的对象。 如果省略 thisArg,则 undefined将用作 this 值。

一个新数组,其中的每个元素均为关联的原始数组元素的回调函数返回值。

下表列出了回调函数参数。

回调参数

定义

value

数组元素的值。

index

数组元素的数字索引。

array1

包含该元素的数组对象。



  var a1= [11,22,33];
  a1= a1.map(function(){
      return  value * 2
  })
  console.log(a1)  //[22, 44, 66]

   也可以返回属性


使用第三个参数thisArg的例子
var tt = [5, 8, 3, 10];
var obj =  {
    a:10 ,
    hehe: function(value){
       return this.a * value
    }
};

tt = tt.map(obj.hehe,obj) ;
console.log(tt);//[50, 80, 30, 100]
使用原生js的例子
var tt = [64, 9, 81, 49];
tt =tt.map(Math.sqrt);
console.log(tt);//[8, 3, 9, 7]




3)   /filter /
 过滤筛选, 返回过滤后的新数组。 

参数

定义

array1

必需。 一个数组对象。

callbackfn

必需。 一个接受最多三个参数的函数。 some 方法会为 array1 中的每个元素调用callbackfn 函数,直到 callbackfn 返回 true,或直到到达数组的结尾。

thisArg

可选。 可在 callbackfn 函数中为其引用 this 关键字的对象。 如果省略 thisArg,则undefined 将用作 this 值。

如果 callbackfn 函数为任何数组元素均返回 true,则为 true;否则为 false

下表列出了回调函数参数。

回调参数

定义

value

数组元素的值。

index

数组元素的数字索引。

array1

包含该元素的数组对象。


需要返回值 返回true就算通过 如果false就再见啦 上代码
var a1= [11,22,33];

a1 = a1.filter(function(item){
     if(item>14){return true }
     return false
})
console.log(a1) // [22, 33]

使用第三个参数thisArg的例子
var obj  = {
    hehe:function(value,index,array){
        return this.rr(value) > 50
    },
    rr:function(x){
          return x*10
    }
} ;
var tt = [8, 3, 9, 2];
tt=tt.filter(obj.hehe,obj);
console.log(tt); //[8, 9]


    

4)///some//

some 方法会按升序索引顺序对每个数组元素调用 callbackfn 函数,直到 callbackfn 函数返回 true。 如果找到导致 callbackfn 返回 true 的元素,则 some 方法会立即返回 true 如果回调不对任何元素返回true,则 some 方法会返回 false
                  --------与array.every的区别!!  some遍历到true 直接返回true  every需要全部true之后才返回true

参数

定义

array1

必需。 一个数组对象。

callbackfn

必需。 一个接受最多三个参数的函数。 some 方法会为 array1 中的每个元素调用callbackfn 函数,直到 callbackfn 返回 true,或直到到达数组的结尾。

thisArg

可选。 可在 callbackfn 函数中为其引用 this 关键字的对象。 如果省略 thisArg,则undefined 将用作 this 值。

如果 callbackfn 函数为任何数组元素均返回 true,则为 true;否则为 false

下表列出了回调函数参数。

回调参数

定义

value

数组元素的值。

index

数组元素的数字索引。

array1

包含该元素的数组对象。


例子 
var aa = [22,33,44,55] ;
function ab(value){
    return value == 22
}
if(aa.some(ab)){
    console.log(true)   //true
}else{
    console.log(falses)
};

使用第三个参数thisArg的例子
var aa = [22,33,44,55] ;

var obj={
    bb:22 ,
    aa:function(value){
      return  this.bb ==value
    }
}
if(aa.some(obj.aa,obj)){
    console.log(true)   //true
}else{
    console.log(falses)
};

3)//every//

every 方法会按升序顺序对每个数组元素调用一次 callbackfn 函数,直到 callbackfn 函数返回 false。 如果找到导致 callbackfn 返回 false 的元素,则 every 方法会立即返回 false 否则,every 方法返回true
                                                                               ---------与array.some的区别!!  some遍历到true 直接返回true  every需要全部true之后才返回true

参数

定义

array1

必需。 一个数组对象。

callbackfn

必需。 一个接受最多三个参数的函数。 every 方法会为 array1 中的每个元素调用callbackfn 函数,直到 callbackfn 返回 false,或直到到达数组的结尾。

thisArg

可选。 可在 callbackfn 函数中为其引用 this 关键字的对象。 如果省略 thisArg,则undefined 将用作 this 值。

下表列出了回调函数参数。

回调参数

定义

value

数组元素的值。

index

数组元素的数字索引。

array1

包含该元素的数组对象。


例子
var aa =[1,2,3,45,6]

var bol=aa.every(function(value){
    return value%2 == 0
})
if(bol){
   console.log("全是是双数")
}else{
    console.log("啊哦有些不是双数")  // 啊哦有些不是双数
}
使用和some同样的例子
var aa = [22,33,44,55] ;
function ab(value){
    return value == 22
}
if(aa.every(ab)){
    console.log(true)   
}else{
    console.log(false)//false
};

使用第三个参数thisArg的例子
var  aa =[1,2,3,45,6];
var obj= {
    aa:2,
    test:function(value){
         return value%this.aa ==0
    }
}
var bol=aa.every(obj.test,obj);
if(bol){
   console.log("全是是双数")
}else{
    console.log("啊哦有些不是双数")  // 啊哦有些不是双数
}



5)/ indexOf/

术语

定义

array

要搜索的数组。

item

要在数组中查找的对象。

startIndex

(可选)指定在数组中搜索的起始元素的索引号。

如果找到 item,则返回表示该元素在数组中的索引位置的编号;否则返回 -1。

在 Mozilla Firefox 中,如果调用 indexOf 时未设置 item 或将其设置为 undefined,则返回值为 undefined 的第一项的索引。 在同样的情况下,所有其他浏览器都返回 -1。

使用 indexOf 函数可确定某个元素在数组实例中第一次出现的索引位置。

                           -------还有一个叫lastIndexOf()和indexOf()相同,只不过他是按照数组的下标的降序遍历

上代码
var a = [1,2,3,4,5];
console.log(a.indexOf(3,1));  //2
console.log(a.lastIndexOf(2))  //1
lastIndexOf
var a = [1,2,3,4,5,3,3,5];

var f = a.lastIndexOf(3); //6


  









































 














































  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值