JavaScript中的数组操作介绍


Posted in Javascript onDecember 30, 2014

JavaScript中的数组对象自带了一些方法,可以通过使用这些方法来对数组进行操作。

 

join()

 

可以使用join()方法将数组中的成员合并到一个字符串中:

var o = [1,2,3];

console.log(o.join());//1,2,3

console.log(o.join(" "));//1 2 3

var emptyArray = new Array(10);

console.log(emptyArray.join("-"));//----------

从上面的例子中可以看到,如果join()方法不带参数,那么JavaScript会用逗号作为分隔符将所有的成员合并到一个字符串中;如果join()方法接受参数,那么这个参数会作为分隔符来使用。

reverse()

可以使用reverse()方法将数组中的成员顺序进行颠倒:

//reverse()

o.reverse();

console.log(o);//[3,2,1]

可以看到,调用reverse()语句后,数组自身将发生改变。

执行reverse()语句的返回结果为发生改变后的数组对象。

sort()

可以使用sort()方法对数组中的成员进行排序(默认以字母顺序排列)。与reverse()语句一样,sort()语句会对数组自身进行修改并返回修改后的数组对象:

var a = ["Phone", "Mobile",,,"Canon"];

a.sort();

console.log(a);//["Canon", "Mobile", "Phone", undefined, undefined]

var b = [33,44,111];

console.log(b.sort());//[111, 33, 44]

console.log(b.sort(function(a,b){return a-b}));//[33, 44, 111]

可以看到,sort()语句还接受一个function作为参数来实现自定义排序。

concat()

可以使用concat()方法对数组进行拼接:

var c = [1,2,3];

console.log(c.concat(4));//[1, 2, 3, 4]

console.log(c.concat(5,6));//[1, 2, 3, 5, 6]

console.log(c.concat([7,8]));//[1, 2, 3, 7, 8]

console.log(c.concat([9,10], [11,12]));//[1, 2, 3, 9, 10, 11, 12]

console.log(c.concat([42,43,[44,45]]));//[1, 2, 3, 42, 43, [44, 45]]

console.log(c);//[1, 2, 3]

可以看到,与reverse()和sort()不同,concat()语句仅仅只是返回拼接后的结果而已,对数组自身不会产生任何修改。

slice()

可以使用slice()语句来获取数组中的子数组(sub-array):

var d = [1,2,3,4,5,6];

console.log(d.slice(0,3));//[1,2,3]

console.log(d.slice(3,1));//[]

与concat()一样,slice()语句仅仅只是返回操作后的结果而已,对数组自身不会产生任何修改。对于slice()语句中的两个参数,JavaScript遵循“前包括后不包括”的原则:第一个参数所指定的数组成员会出现在子数组中,而第二个参数所指定的数组成员则不会出现。

splice()

可以使用splice()语句来对数组进行插入和敲除操作。其第一个参数指定插入或敲除的位置(位置成员),第二个参数指定敲除成员的数目(从位置成员开始敲除),从第三个参数开始,所有的参数都会被插入到数组中(从位置成员之前进行插入)。splice()语句返回的结果为被敲除的数组成员所组成的数组。与concat()和slice()不同,splice()会对数组自身产生修改。

var e = [1,2,3,4,5,6,7];

console.log(e.splice(1,2));//[2,3]

console.log(e);//[1,4,5,6,7]

console.log(e.length);//5

e.splice(1,0,2,3,[4,5]);

console.log(e);//[1, 2, 3, [4, 5], 4, 5, 6, 7]
Javascript 相关文章推荐
JavaScript中清空数组的三种方法分享
Apr 07 Javascript
选择复选框按钮置灰否则按钮可用
May 22 Javascript
jQuery中live()方法用法实例
Jan 19 Javascript
js中flexible.js实现淘宝弹性布局方案
Jun 23 Javascript
jquery判断iPhone、Android设备类型
Sep 14 Javascript
微信小程序 教程之模块化
Oct 17 Javascript
Bootstrap3 内联单选和多选框
Dec 29 Javascript
JS出现失效的情况总结
Jan 20 Javascript
使用 jQuery 实现表单验证功能
Jul 05 jQuery
详解Vue webapp项目通过HBulider打包原生APP
Jun 29 Javascript
解决eclipse中没有js代码提示的问题
Oct 10 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
jQuery中:first选择器用法实例
Dec 30 #Javascript
JavaScript中的类数组对象介绍
Dec 30 #Javascript
JavaScript中的方法调用详细介绍
Dec 30 #Javascript
JavaScript中的闭包(Closure)详细介绍
Dec 30 #Javascript
JavaScript中的类(Class)详细介绍
Dec 30 #Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
Dec 29 #Javascript
jQuery实现ichat在线客服插件
Dec 29 #Javascript
You might like
php 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
取得父标签
2006/11/14 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
JS实现生成会变大变小的圆环实例
2015/08/05 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
2017/07/17 jQuery
阿里大于短信验证码node koa2的实现代码(最新)
2017/09/07 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
js实现扫雷源代码
2020/11/27 Javascript
[46:32]Fnatic vs OG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python利用IPython提高开发效率
2016/08/10 Python
Python3爬虫全国地址信息
2019/01/05 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
python numpy之np.random的随机数函数使用介绍
2019/10/06 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
C++面试题:关于链表和指针
2013/06/05 面试题
广州品高软件.net笔面试题目
2012/04/18 面试题
任命书怎么写
2014/06/04 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
学习十八大标语
2014/10/09 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
严以用权学习心得体会
2016/01/12 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS