Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JavaScript中Array数组的几种方法

JavaScript中Array数组的几种方法

作者头像
OECOM
发布于 2020-07-01 09:26:09
发布于 2020-07-01 09:26:09
1.2K00
代码可运行
举报
文章被收录于专栏:OECOMOECOM
运行总次数:0
代码可运行

2017-02-18 03:33:38

涉及到数组的问题,以前基本上我们都是采用for循环的方法来进行遍历,后来在ES5中新增了几种方法来方便我们遍历。这几种方法分别为:forEach(js v1.6) ,map(js V1.6),filter (js v1.6),some(js V1.6),every(js V1.6),indexOf(js V1.6),lastIndexOf(js V1.6),reduce(js V1.8),rceRight(js V1.8)。

对于让人失望很多次的IE6-IE8浏览器,如果你想兼容的话,可以通过Array原型扩展实现以上全部功能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 对于古董浏览器,如IE6-IE8

if (typeof Array.prototype.forEach != "function") {
  Array.prototype.forEach = function () {
    /* 实现 */
  };
}

下面详细介绍一下各方法的用处。

forEach()

forEach是Array新方法中最基本的一个,就是遍历,循环。例如下面这个例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function(value){ //只使用了第一个参数(函数),调用的函数也只使用了第一个参数数组元素
 sum += value;
});
 
console.log(sum);//15
console.log(data);// [1, 2, 3, 4, 5]
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,2,3,4,5];
var sum = 0;
data.forEach(function(value,item,data){ //调用的函数具有了三个参数
  data[item] = value*value; //取平方
});
 
console.log(data);// [1, 4, 9, 16, 25]

上面的这两个例子里可以看出,forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身。

map()

这个方法将调用的数组中每个元素传递给指定的函数,并返回一个数组,它包含这个函数的返回值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,2,3,4,5];
var data1 = data.map(function(value){
 return ++ value;
});
 
console.log(data); // [1, 2, 3, 4, 5]
console.log(data1);// [2, 3, 4, 5, 6]

当然这个方法可以替代for循环遍历数组元素,进行数据操作

filter()

这个方法返回的数组元素是调用的数组的一个子集。传递的函数是用来逻辑判定的,该函数返回true或false。

如果返回值是true或者能转化为true的值,那么传递给判定函数的元素就是这个子集的成员,它将被添加到一个作为返回值的数组中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,2,3,4,5];
var data1 = data.filter(function(value){
 return value <= 3;
});
 
var data2 = data.filter(function(value){
 return value > 3;
});
 
console.log(data); // [1, 2, 3, 4, 5]
console.log(data1);// [1,2,3]
console.log(data2);// [4,5]

every()和some()

every和some均是对数据进行筛选,不同的是every是对所有元素进行筛选,必须该数组都符合要求才返回true,否则返回false。而some不同的是只要筛选到符合条件的就直接返回true,不再进行后续元素的筛选。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,2,3,4,5];
var data1 = data.every(function(value){
 return value < 4;
});
 
var data2 = data.some(function(value){
 return value >4;
});
 
console.log(data); // [1, 2, 3, 4, 5]
console.log(data1);// false
console.log(data2);// true

reduce()和reduceRight()

这两个方法使用指定的函数将数组元素进行组合,生成单个值。

reduce()有两个参数。第一个是执行化简操作的函数,就是说用某种方法把两个值化简为一个值,并返回化简后的值。

第二个参数可选,用来传递给第一个参数函数作为初始值。如果第二个参数没有,则初始值就使用数组的第一个元素值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = [1,2,3,4,5];
var sum = data.reduce(function(a,b){
 return a+b;
});
 
var sum1 = data.reduce(function(a,b){
 return a+b;
},5);
 
var min = data.reduce(function(a,b){
 return (a<b)?a:b;
});
 
console.log(data); // [1, 2, 3, 4, 5]
console.log(sum);// 15
console.log(sum1);// 20
console.log(min);// 1

sum中没有第二个参数,所以初始值为第一个数组元素,第一步1+2=3,第二步3+3=6... 最后得15 sum1中有第二个参数,所以初始值为5,第一步5+1=6,第二步6+2=8... 最后得20

reduceRight()和reduce()差不多,不同的是它按照数组索引从高到低(从右到左)处理数组,而不是正常的从低到高。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = ['a','b','c']; 
var str = data.reduce(function(x,y){ //顺序
 return x+y;
});
 
var str1 = data.reduceRight(function(x,y){ //逆序
 return x+y;
});
 
console.log(data);// [1, 2, 3]
console.log(str);//"abc"
console.log(str1);//"cba"

indexOf()和lastIndexOf()

这个方法搜索整个数组中具有给定值的元素,返回找到的元素的索引(找到了一个就退出了),没有找到则返回-1.

一个从头至尾,一个从尾至头

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var data = ['a','b','a','c','a']; 
 
console.log(data.indexOf('a')); //0
console.log(data.indexOf('d')); //-1
console.log(data.lastIndexOf('a'));//4
 
console.log(data.lastIndexOf('a',-2));//2 从倒数第二个开始
console.log(data.lastIndexOf('a',1));//0  从顺序第二个往前
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Array 数组常用方法
Array.join()方法将数组中所有元素都转化为字符串并连接在一起,返回最后生成的字符串。可以自己指定分隔的符号,如果不指定,默认使用逗号
书童小二
2018/09/03
5950
Javascript Array常见方法说明
不嫌弃包的大小的话,可以使用underscorejs 或者 lodash 更加好用。。。。
javascript.shop
2019/09/05
8060
Javascript Array常见方法说明
JavaScript数组方法详解
JavaScript中数组的方法种类众多,在ES3-ES7不同版本时期都有新方法;并且数组的方法还有原型方法和从object继承的方法,这里我们只介绍数组在每个版本中原型上的方法,本文举例介绍了从ES3到ES7几乎所有的数组方法。这大概是最全的数组方法详解了。希望读者能从中有所收获。
全栈程序员站长
2022/09/06
8300
JavaScript数组Array的基本操作
若是减小,则索引大于改变后 length值的数组项都不存在,返回 undefined
努力的Greatiga
2022/07/25
6160
JS Array ECMAScript5 Methods
JavaScript 的新版本(ECMAScript 5)中,为数组新增了一些方法。这些方法包括:
全栈程序员站长
2022/07/15
3.2K0
JS数组方法大全
功能:用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。 参数:concat(data1,data2,...);所有参数可选,要合并的数据;data为数组时,将data合并到原数组;data为具体数据时直接添加到原数组尾部;省略时创建原数组的副本。
IT工作者
2021/12/30
4.4K0
JavaScript —— Array 使用汇总
由于 length 和 prototype 两个属性比较通用,所以这里不过多的介绍。
Originalee
2020/06/11
6290
JavaScript —— Array 使用汇总
JavaScript权威指南 - 数组
JavaScript数组是一种特殊类型的对象。 JavaScript数组元素可以为任意类型,最大容纳232-1个元素。 JavaScript数组是动态的,有新元素添加时,自动更新length属性。 JavaScript数组元素索引可以是不连续的,它们之间可以有空缺。
Esofar
2018/09/05
4.2K0
最全的JavaScript常见的操作数组的函数方法宝典
JavaScript在其内部封装了一个Array对象,使得我们可以方便地使用数组这种简单的数据结构,同时,也在 Array对象的原型上定义了一些常用并且很有用的操作数组的函数。
前端迷
2020/11/19
7550
JavaScript(ES6之前)数组方法总结
默认按升序排列数组项,排序时会调用每个数组项的 toString() 转型方法,然后比较得到的字符串,以确定如何排序。即使数组中的每一项都是数值, sort() 方法比较的也是字符串,因此会出现以下的这种情况
Leophen
2019/08/23
4940
JavaScript(ES6之前)数组方法总结
JavaScript 数组操作方法大全
数组操作是 JavaScript 中非常重要也非常常用的技巧。本文整理了常用的数组操作方法(包括 ES6 的 map、forEach、every、some、filter、find、from、of 等),熟悉了这些数组操作方法,编写程序也会更加简洁高效。
写bug的高哈哈
2024/11/05
611
JavaScript 数组操作方法大全
js数组常用方法总结
最近工作中经常用到数组操作,每次都傻傻不知道怎么用,今天有时间整理了一下,希望对大家有帮助!这些基础的知识,要熟记于心。
半指温柔乐
2018/09/11
5K0
JavaScript数组方法和es6数组方法
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132980.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/28
6740
JavaScript数组方法和es6数组方法
JavaScript数据结构01 - 数组
PS:原始值是指固定而简单的值,存放在栈中的简单数据段,它们的值直接存储在变量访问的位置。
leocoder
2018/10/31
1.2K0
13个有趣的JavaScript原生数组函数
来源 | http://www.fly63.com/article/detial/9098?type=2 在JavaScript中,创建数组可以使用Array构造函数,或者使用数组直接量[],后者是首
前端达人
2021/05/11
5830
JavaScript中的数组方法总结+详解「建议收藏」
功能: 在数组最后一位添加一个或多个元素,并返回新数组的长度,改变原数组.(添加多个元素用逗号隔开)
全栈程序员站长
2022/09/14
1.4K0
JavaScript中的数组方法总结+详解「建议收藏」
最全 JavaScript Array 方法 详解
我们在日常开发中,与接口打交道最多了,前端通过访问后端接口,然后将接口数据二次处理渲染到页面当中。 二次处理的过程是 考验 Coder 对 Array 是否熟练 以及 在 何种 场景下使用哪种方法处理最优 。 小编,在最近开发中就遇到了 Array 问题, 在处理复杂的业务需求时,没想到Array 有类似的方法,然后将方法 组合起来解决当下问题。
程序员海军
2021/10/11
1.1K0
最全 JavaScript Array 方法 详解
JS数组常用方法大全
join(separator): 将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符,该方法只接收一个参数:即分隔符。
青梅煮码
2023/01/14
3.1K0
Javascript数组系列二之迭代方法2
今天我们来继续 Javascript 数组系列的文章,上文 《Javascript数组系列二之迭代方法1》 我们说到一些数组的迭代方法,我们在开发项目实战的过程中熟练的使用可以大大提高我们的开发效率以及数据的处理。接下来我们继续来讲解其他的一些迭代的方法。
六小登登
2022/05/10
5290
Javascript数组系列二之迭代方法2
JavaScript的数组常规操作
在JavaScript中,数组必须使用数字索引,对象可以使用命名索引。 数组是特殊类型的对象,具有特有的一些属性和方法。
青梅煮码
2023/01/31
1.6K0
相关推荐
Array 数组常用方法
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验