JavaScript 中有关数组对象的方法(详解)


Posted in Javascript onAugust 15, 2016

JS 处理数组多种方法

js 中的数据类型分为两大类:原始类型和对象类型。

原始类型包括:数值、字符串、布尔值、null、undefined

对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象----函数(js中的一等对象)、数组(键值的有序集合)。

数组元素的添加

arrayObj.push([item1 [item2 [. . . [itemN ]]]]);

将一个或多个新元素添加到数组结尾,并返回数组新长度

arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);

将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度

arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);

将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""

数组元素的删除

arrayObj.pop();

移除最后一个元素并返回该元素值

arrayObj.shift();

移除最前一个元素并返回该元素值,数组中元素自动前移

arrayObj.splice(deletePos,deleteCount);

删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

截取与合并

arrayObj.slice(start, [end]);

以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素

arrayObj.concat([item1[, item2[, . . . [,itemN]]]]);

将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

数组的拷贝

arrayObj.slice(0);

返回数组的拷贝数组,注意是一个新的数组,不是指向

arrayObj.concat();

返回数组的拷贝数组,注意是一个新的数组,不是指向

数组元素的排序

arrayObj.reverse();

反转元素(最前的排到最后、最后的排到最前),返回数组地址

arrayObj.sort();

对数组元素排序,返回数组地址

数组元素的插入

arrayObj.splice(insertPos,0, [item1[, item2[, . . . [,itemN]]]]);

从 insertPos 位置插入指定的item元素,0代表删除0个元素,返回空数组

数组元素的替换

arrayObj.splice(insertPos,replaceCount, [item1[, item2[, . . . [,itemN]]]]);

从 insertPos 位置删除 replaceCount 个元素,再从 insertPos 位置添加指定的item元素,数组形式返回被删除的元素

数组元素的位置

arrayObj.indexOf(findThing,start);

从要查找的起点(可选) start 开始向后找要查找的项 findThing ,找的准则是全等,找到则返回该值的位置,找不到则返回-1

arrayObj.lastIndexOf(findThing,number)

从要查找的起点(可选) start 开始向前找要查找的项 findThing ,找的准则是全等,找到则返回该值的位置,找不到则返回-1

数组元素的迭代

arrayObj.every()

对数组中的每一项运行给定的函数,如果该函数对每一项都返回 true ,则返回 true

arrayObj.filter()

对数组中的每一项运行给定的函数,返回该函数会返回 true 的项组成的数组

arrayObj.forEach()

对数组中的每一项运行给定的函数,这个方法没有返回值

arrayObj.map()

对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组

arrayObj.some()

对数组中的每一项运行给定的函数,如果该函数对任一项返回 true ,则返回 true

数组元素的归并

arrayObj.reduce(prev, cur, index, array)

从数组的第一项开始,逐个便利到最后,四个参数分别为前一个值,当前值,项的索引和数组对象,函数返回的任何值会作为第一个参数自动传给下一项

000

arrayObj.reduceRight()

从数组的最后开始,逐个便利到第一项,四个参数分别为前一个值,当前值,项的索引和数组对象,函数返回的任何值会作为第一个参数自动传给下一项

数组元素的字符串化

arrayObj.join(separator);

返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。

toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用

toSource() 返回该对象的源代码

toString() 把数组转换为字符串,并返回结果

toLocaleString() 把数组转换为本地数组,并返回结果

valueOf() 返回数组对象的原始值

ES5 新增

Array.prototype.indexOf

indexOf()方法返回在该数组中第一个找到的元素位置,如果它不存在则返回-1。

Array.prototype.lastIndexOf

Array.prototype.every

Array.prototype.some

Array.prototype.forEach

forEach为每个元素执行对应的方法

Array.prototype.map

map()对数组的每个元素进行一定操作(映射)后,会返回一个新的数组

map()是处理服务器返回数据时是一个非常实用的函数

Array.prototype.filter

该filter()方法创建一个新的匹配过滤条件的数组。

Array.prototype.reduce

reduce()可以实现一个累加器的功能,将数组的每个值(从左到右)将其降低到一个值

场景: 统计一个数组中有多少个不重复的单词

Array.prototype.reduceRight

以上这篇JavaScript 中有关数组对象的方法(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery中setTimeout的几种使用方法小结
Apr 07 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
Dec 14 Javascript
关于session和cookie的简单理解
Jun 08 Javascript
利用yarn实现一个webpack+react种子
Oct 25 Javascript
详解vue2.0组件通信各种情况总结与实例分析
Mar 22 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
node.js中fs文件系统目录操作与文件信息操作
Feb 24 Javascript
vue.js实现的绑定class操作示例
Jul 06 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
javascript防抖函数debounce详解
Jun 11 Javascript
详解vuex数据传输的两种方式及this.$store undefined的解决办法
Aug 26 Javascript
onmouseover事件和onmouseout事件全面理解
Aug 15 #Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
Aug 15 #Javascript
又一款js时钟!transform实现时钟效果
Aug 15 #Javascript
最丑的时钟效果!js canvas时钟制作方法
Aug 15 #Javascript
深入分析javascript中console命令
Aug 14 #Javascript
Vue.js 表单校验插件
Aug 14 #Javascript
Vue.js学习笔记之 helloworld
Aug 14 #Javascript
You might like
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
php中数组首字符过滤功能代码
2012/07/31 PHP
php实现的短网址算法分享
2014/06/20 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
JavaScript confirm选择判断
2008/10/18 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
JavaScript实现向OL列表内动态添加LI元素的方法
2015/03/21 Javascript
Angular2利用组件与指令实现图片轮播组件
2017/03/27 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
详解nodejs模板引擎制作
2017/06/14 NodeJs
微信小程序倒计时功能实现代码
2017/11/09 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
Vue实现简单的留言板
2020/10/23 Javascript
三剑客:offset、client和scroll还傻傻分不清?
2020/12/04 Javascript
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
python实现复制文件到指定目录
2019/10/16 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
2019/11/04 Python
详解Django配置优化方法
2019/11/18 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
印度尼西亚在线时尚购物网站:ZALORA印尼
2016/08/02 全球购物
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
美国五金商店:Ace Hardware
2018/03/27 全球购物
新英格兰最大的特色礼品连锁店:The Paper Store
2018/07/23 全球购物
Vita Fede官网:在意大利手工制作,在纽约市设计
2019/10/25 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
人事主管岗位职责
2014/01/30 职场文书
房屋所有权证明
2014/10/20 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书