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 相关文章推荐
js checkbox(复选框) 使用集锦
Apr 28 Javascript
再论Javascript的类继承
Mar 05 Javascript
js编码、解码函数介绍及其使用示例
Sep 05 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
Mar 03 Javascript
详解AngularJS 模态对话框
Apr 07 Javascript
Bootstrap轮播插件简单使用方法介绍
Jun 21 Javascript
Angular 理解module和injector,即依赖注入
Sep 07 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
Jul 10 Javascript
Layui数据表格之获取表格中所有的数据方法
Aug 20 Javascript
vue通过style或者class改变样式的实例代码
Oct 30 Javascript
vue favicon设置以及动态修改favicon的方法
Dec 21 Javascript
微信小程序textarea层级过高(盖住其他元素)问题的解决办法
Mar 04 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
生成php程序的php代码
2008/04/07 PHP
php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
PHP自动选择 连接本地还是远程数据库
2010/12/02 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
javascript操作字符串的原生方法
2014/12/22 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
AngularJS入门教程之链接与图片模板详解
2016/08/19 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
Python获取当前时间的方法
2014/01/14 Python
python实现数据图表
2017/07/29 Python
使用Python进行AES加密和解密的示例代码
2018/02/02 Python
python如何拆分含有多种分隔符的字符串
2018/03/20 Python
Python实现读取Properties配置文件的方法
2018/03/29 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
python excel多行合并的方法
2020/12/09 Python
各大浏览器 CSS3 和 HTML5 兼容速查表 图文
2010/04/01 HTML / CSS
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
为什么要使用servlet
2016/01/17 面试题
会计电算化应届生求职信
2013/11/03 职场文书
小学生班会演讲稿
2014/01/09 职场文书
大学生志愿者感言
2014/01/15 职场文书
2014各大专业毕业生自我评价
2014/09/17 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
2016年五一促销广告语
2016/01/28 职场文书
导游词之香港-太平山顶
2019/10/18 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS
PHP实现rar解压读取扩展包小结
2021/06/03 PHP