操作方法

concat( )

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法

arrayObject.concat(arrayX,arrayX,......,arrayX)
参数 描述
arrayX 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。

实例

var colors = ["red","green","blue"];
var colors2 = colors.concat("yello",["black","white"]); alert(colors); //red,green.blue
alert(colors2); //red,green,blue,yellow,black,white

以上代码开始定义了一个包含三个值的数组colors。然后基于colors调用了concat()方法,并传入字符串"yellow"和一个包含"black"和"white"的数组。最终,结果数组colors2中包括了"red","green","blue","yellow","black","white"。至于原来的数组colors,依旧保持不变。

slice( )

slice() 方法可从已有的数组中返回选定的元素。

语法

arrayObject.slice(start,end)
参数 描述
start 必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

返回值

返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。

实例

var colors = ["red","green","blue","black","white"];
var colors2 = colors.slice(1);
var colors3 = colors.slice(1,4); alert(colors2); //"green","blue","black","white"
alert(colors3); //"green","blue","black"

在这个例子中,数组colors包含五项。调用slice()并传入1会得到一个包括四项的新数组,因为从1开始复制,所以会包含"green "而不是"red"。后面我们调用slice()并传入1和4,表示复制从1开始,到位置3结束。

splice( )

定义和用法

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

注释:该方法会改变原始数组。

语法

arrayObject.splice(index,howmany,item1,.....,itemX)
参数 描述
index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX 可选。向数组添加的新项目。

返回值

类型 描述
Array 包含被删除项目的新数组,如果有的话。

实例

var colors = ["red","green","blue"];
var removed = colors.splice(0,1); //删除第一项
alert(colors); //green,blue
alert(removed); //red removed=colors.splice(1,0,"yellow","orange"); //从位置1开始插入两项
alert(colors); //green,yellow,orange,blue
alert(removed); //返回的是一个空数组 removed=colors。splice(1,1,"red","purple"); //插入两项,删除一项
alert(colors); //green,red,purple,orange,blue
alert(removed); //yellow,返回的数组中只包含一项

位置方法

ES5为数组实例添加了两个位置方法:indexOf( )和lastIndexOf( )。

indexOf( )

定义和用法

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

语法

stringObject.indexOf(searchvalue,fromindex)
参数 描述
searchvalue 必需。规定需检索的字符串值。
fromindex 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。

说明

该方法将从头到尾地检索字符串 stringObject,看它是否含有子串 searchvalue。开始检索的位置在字符串的 fromindex 处或字符串的开头(没有指定 fromindex 时)。如果找到一个 searchvalue,则返回 searchvalue 的第一次出现的位置。stringObject 中的字符位置是从 0 开始的。

实例

var numbers = [1,2,3,4,5,4,3,2,1];
alert(numbers.indexOf(4)); //3

lastIndexOf( )

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

实例

var numbers = [1,2,3,4,5,4,3,2,1];
alert(numbers.lastIndexOf(4)); //5

迭代方式

ES5为数组定义了几种迭代方法。

每个方法都要接受两个参数:

1.要在每一项上运行函数

2.运行该函数的作用域对象——影响this的值(可选的)。

传入这些方法中的函数会接收三个参数:数组项的值、改项在数组中的位置和数组对象本身。

filter( )

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

注意: filter() 不会对空数组进行检测。

注意: filter() 不会改变原始数组。

语法

array.filter(function(currentValue,index,arr), thisValue)
//必须。函数,数组中的每个元素都会执行这个函数
参数 描述
currentValue 必须。当前元素的值
index 可选。当前元素的索引值
arr 可选。当前元素属于的数组对象

返回值

返回数组,包含了符合条件的所有元素。如果没有符合条件的元素则返回空数组。

实例

var numbers =[1,2,3,4,5,6,7,8,1,2,3];
var filterResult = numbers.filter(function(item,index,array){
return (item>2);
});
alert(filterResult); //3,4,5,6,7,8,3

map( )

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。

注意: map() 不会对空数组进行检测。

注意: map() 不会改变原始数组。

语法

array.map(function(currentValue,index,arr), thisValue)
//必须。函数,数组中的每个元素都会执行这个函数
参数 描述
currentValue 必须。当前元素的值
index 可选。当前元素的索引值
arr 可选。当前元素属于的数组对象

返回值

返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

实例

var numbers= [1,2,3,4,5,6,7,8];
var mapResult =numbers.map(function(item,index,array){
return item*2
})
alert(mapResult); //2,4,6,8,10,12,14,16

forEach( )

forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。

注意: forEach() 对于空数组是不会执行回调函数的。

语法

array.forEach(function(currentValue, index, arr), thisValue)
参数 描述
currentValue 必需。当前元素
index 可选。当前元素的索引值。
arr 可选。当前元素所属的数组对象。
thisValue 可选。传递给函数的值一般用 "this" 值。
如果这个参数为空, "undefined" 会传递给 "this" 值

实例

var numbers= [1,2,3,4,5,6,7,8];
var sum=0;
var forEachResult =numbers.forEach(function(item,index,array){
sum+=item;
})
alert(sum); //36

最新文章

  1. CSS中margin与padding的区别
  2. 笔记之Python网络数据采集
  3. ubuntu安装shadowshocks-qt5
  4. Plextor 浦科特M7VC性能
  5. 写入.csv文件
  6. Image和字节数组互转
  7. Linux学习之CentOS(十二)------磁盘管理之 磁盘的分区、格式化、挂载(转)
  8. oo修仙之路
  9. 2.3Options建立配置和实体的映射「深入浅出ASP.NET Core系列」
  10. 动态规划——Best Time to Buy and Sell Stock III
  11. 改变select箭头样式
  12. Python函数——列表推导式、生成器与迭代器
  13. Java基础——6种常用类讲解
  14. mysql中的delete , drop 和truncate 区别
  15. 如何提高JavaScript代码质量
  16. JBoss 系列一 O O:Maven jBPM 6 集成演示样例
  17. ecmall用户登录后自动退出解决方法
  18. AJAX(XMLHttpRequest)进行跨域请求方法详解
  19. ArrayList用法详解与源码分析
  20. springMVC笔记二

热门文章

  1. C#还原对图像做的修改
  2. zabbix如何监控Nvidia显卡的各项指标?
  3. TypeError 之 Cannot convert undefined or null to object
  4. adb 打开手机端口进行无线模式调试
  5. Combine 框架,从0到1 —— 4.在 Combine 中使用通知
  6. Tomcat三实例cluster多播方案共享session再配置
  7. 8.ffmpeg-基础常用知识
  8. 添加到web.config文件里的用户自定义翻页控件
  9. 【深入理解Linux内核架构】第3章:内存管理
  10. 硬核看房利器——Web 全景的实现