您的位置:首页 > 其它

ES5中 array操作 菜鸟学习笔记

2015-01-06 17:54 141 查看
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/////////////////////////////////////////




[title3]

实参

[/title3]



术语
定义
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: