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////////////////////////////////////////
回调函数的参数如下所示。
这个。。我觉得不用说了吧= =上代码吧
2)
/////////////////////////////////////////map
/////////////////////////////////////////
也是遍历 但是有返回值
一个新数组,其中的每个元素均为关联的原始数组元素的回调函数返回值。
下表列出了回调函数参数。
也可以返回属性
使用第三个参数thisArg的例子
3)
/////////////////////////////////////////filter/////////////////////////////////////////
过滤筛选,返回过滤后的新数组。
如果 callbackfn 函数为任何数组元素均返回 true,则为 true;否则为 false。
下表列出了回调函数参数。
需要返回值 返回true就算通过 如果false就再见啦 上代码
使用第三个参数thisArg的例子
4)///////////////////////////////////////some//////////////////////////////
some 方法会按升序索引顺序对每个数组元素调用 callbackfn 函数,直到 callbackfn 函数返回 true。 如果找到导致 callbackfn 返回 true 的元素,则 some 方法会立即返回 true。 如果回调不对任何元素返回true,则 some 方法会返回 false。
--------与array.every的区别!!
some遍历到true 直接返回true every需要全部true之后才返回true
如果 callbackfn 函数为任何数组元素均返回 true,则为 true;否则为 false。
下表列出了回调函数参数。
例子
使用第三个参数thisArg的例子
3)//////////////////////////////////////////////////every//////////////////////////////////////////////////
every 方法会按升序顺序对每个数组元素调用一次 callbackfn 函数,直到 callbackfn 函数返回 false。 如果找到导致 callbackfn 返回 false 的元素,则 every 方法会立即返回 false。 否则,every 方法返回true。
---------与array.some的区别!!
some遍历到true 直接返回true every需要全部true之后才返回true
下表列出了回调函数参数。
例子
使用和some同样的例子
使用第三个参数thisArg的例子
如果找到 item,则返回表示该元素在数组中的索引位置的编号;否则返回 -1。
在 Mozilla Firefox 中,如果调用 indexOf 时未设置 item 或将其设置为 undefined,则返回值为 undefined 的第一项的索引。 在同样的情况下,所有其他浏览器都返回
-1。
使用 indexOf 函数可确定某个元素在数组实例中第一次出现的索引位置。
-------还有一个叫lastIndexOf()和indexOf()相同,只不过他是按照数组的下标的降序遍历
上代码
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 | 包含该元素的数组对象。 |
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)) //1lastIndexOf
var a = [1,2,3,4,5,3,3,5]; var f = a.lastIndexOf(3); //6
相关文章推荐
- JavaScript中Array类型的基本操作
- SMTH Java FAQ (3) 文件与磁盘操作(菜鸟必看)
- Flex与.NET互操作(十五):使用FluorineFx中的字节数组(ByteArray)实现图片上传
- php简单数组操作,注意array_values()是重构数组
- VC++与Matlab混合编程之引擎操作详解(3)数据类型mxArray的操作
- Python中Array的常用操作(三)数组高级操作
- cbc一些控件操作之菜鸟上路1
- javascript:像操作Array一样操作NodeList
- Iphone数组一些基础操作 NSArray/NSMutableArray
- [菜鸟必读]关于XML操作的教程(一)
- php unset 操作array
- Flex与.NET互操作(十五):使用FluorineFx中的字节数组(ByteArray)实现图片上传
- Flex对Array中的对象进行排序操作
- 最简短最容易理解的js的Array操作
- Array类对数组的操作
- 菜鸟电脑操作技巧60招
- 菜鸟自学Linux之---RedHat Linux 9键盘的快捷操作
- 数据库图形化操作界面源码--MySQL菜鸟入门指南4:图形界面
- VC++与Matlab混合编程之引擎操作详解(3)数据类型mxArray的操作
- js对象之JS入门之Array对象操作小结