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 相关文章推荐
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
Nov 10 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
Apr 04 Javascript
jQuery的图片轮播插件PgwSlideshow使用详解
Aug 11 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
vue实现留言板todolist功能
Aug 16 Javascript
详解VUE2.X过滤器的使用方法
Jan 11 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
Mar 28 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
Jul 31 Javascript
详解webpack之图片引入-增强的file-loader:url-loader
Oct 08 Javascript
js使用文件流下载csv文件的实现方法
Jul 15 Javascript
JS实现网站吸顶条
Jan 08 Javascript
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
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
功能齐全的PHP发送邮件类代码附详细说明
2008/07/10 PHP
PHP中PDO基础教程 入门级
2011/09/04 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
再论Javascript的类继承
2011/03/05 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
jQuery焦点图切换特效代码分享
2015/09/15 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
Vue 2.X的状态管理vuex记录详解
2017/03/23 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
Bootstrap4 gulp 配置详解
2019/01/06 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Java多线程编程中ThreadLocal类的用法及深入
2016/06/21 Python
python基础教程之Filter使用方法
2017/01/17 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
python retrying模块的使用方法详解
2019/09/25 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
pytorch随机采样操作SubsetRandomSampler()
2020/07/07 Python
python 装饰器的基本使用
2021/01/13 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
英国旅行箱包和行李箱购物网站:Travel Luggage & Cabin Bags
2019/08/26 全球购物
会计学生自我鉴定
2014/02/06 职场文书
男女朋友协议书
2014/04/23 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
小学师德师风整改措施
2014/10/27 职场文书
学校重阳节活动总结
2015/03/24 职场文书
幼儿园园长安全责任书
2015/05/08 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP