JavaScript中对数组.map()、some()、every()、filter()、forEach的区别
1、区别说明
共同点:
不会对原数组发生修改,而是返回新的变量,用变量接收。
不同点:
1、some():返回一个Boolean类型变量,判断是否有元素符合func条件
2、every():返回一个Boolean类型变量,判断每个元素是否都符合func条件
3、filter():返回一个新数组类型变量,数组符合func条件,新数组中的元素来源于原数组,新数组长度<=原数组长度
4、map():返回一个新数组类型变量,新数组元素由每一次调用函数产生结果组成,新数组中的元素与原数组可完全不一样
5、forEach():用法和map()相似,但是forEach()方法不返回值,forEach无法中断执行,如果需要中断需要改用for
2、用法实例
some()实例
如果fun只有一个参数,那么参数是element。
var arr = [1, 2, 3, 4, 5];
var result=arr.some(function (elem, index, arr) {
return elem >= 3;
});
//result: true
every()实例
如果fun只有一个参数,那么参数是element。
var arr = [1, 2, 3, 4, 5];
var result=arr.every(function (elem, index, arr) {
return elem >= 3;
});
// result:false
filter()实例
如果fun只有一个参数,那么参数是element。
var arr=[1, 2, 3, 4, 5]
var result=arr.filter(function (elem, index, arr) {
return index % 2 === 0;
});
// [1, 3, 5]
可接收第二个参数,主要用于解决this的问题,但是用箭头函数可以规避这个问题
var obj = { MAX: 3 };
var myFilter = function (item) {
if (item > this.MAX) return true;
};
var arr = [2, 8, 3, 4, 1, 3, 2, 9];
arr.filter(myFilter, obj) // [8, 4, 9]
map()实例
如果fun只有一个参数,那么参数是element。
var arr=[1, 2, 3]
var result=arr.map(function(elem, index, arr) {
return elem * index;
});
// [0, 2, 6]
forEach()实例
如果fun只有一个参数,那么参数是element。
function log(element, index, array) {
console.log('[' + index + '] = ' + element);
}
[2, 5, 9].forEach(log);
// [0] = 2
// [1] = 5
// [2] = 9
可接收第二个参数,主要用于解决this的问题,但是用箭头函数可以规避这个问题
var out = [];
[1, 2, 3].forEach(function(elem) {
this.push(elem * elem);
}, out);
out // [1, 4, 9]
JavaScript中对数组.map()、some()、every()、filter()、forEach的区别的更多相关文章
- JavaScript中的数组详解
JavaScript中的数组 一.数组的定义 数组是值的有序集合,或者说数组都是数据的有序列表. 二.创建数组 [字面量形式] 1.空数组 var arr=[]; 2.带有元素的数组 var arr= ...
- JavaScript中Array(数组) 对象
JavaScript中Array 对象 JavaScript中创建数组有两种方式 (一)使用直接量表示法: var arr4 = []; //创建一个空数组var arr5 = [20]; // 创建 ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- Javascript中判断数组的正确姿势
在 Javascript 中,如何判断一个变量是否是数组? 最好的方式是用 ES5 提供的 Array.isArray() 方法(毕竟原生的才是最屌的): var a = [0, 1, 2]; con ...
- javascript中的数组扩展(一)
javascript中的数组扩展(一) 随着学习的深入,发现需要学习的关于数组的内容也越来越多,后面将会慢慢归纳,有的是对前面的强化,有些则是关于前面的补充. 一.数组的本质 数组是按照次序排 ...
- JavaScript中对数组的操作
原文:JavaScript中对数组的操作 一:数组的使用 1.定义:JavaScript中对数组的定义有两种形式.如: .var arr = [12,3,5,8]; .var arr = new Ar ...
- JavaScript中对数组和数组API的认识
JavaScript中对数组和数组API的认识 一.数组概念: 数组是JavaScript中的一类特殊的对象,用一对中括号“[]”表示,用来在单个的变量中存储多个值.在数组中,每个值都有一个对应的不重 ...
- JavaScript中的数组和字符串
知识内容: 1.JavaScript中的数组 2.JavaScript中的字符串 一.JavaScript中的数组 1.JavaScript中的数组是什么 数组指的是数据的有序列表,每种语言基本上都有 ...
- JavaScript中的数组创建
JavaScript中的数组创建 数组是一个包含了对象或原始类型的有序集合.很难想象一个不使用数组的程序会是什么样. 以下是几种操作数组的方式: 初始化数组并设置初始值 通过索引访问数组元素 添加新元 ...
- JavaScript中一个对象数组按照另一个数组排序
JavaScript中一个对象数组按照另一个数组排序 需求:排序 const arr1 = [33, 11, 55, 22, 66]; const arr2 = [{age: 55}, {age: 2 ...
随机推荐
- #链表#CF706E Working routine
题目 给出一个 \(n*m\) 的矩阵,每次交换两个等大的矩阵,输出 \(q\) 次操作后的矩阵 分析 维护向右和向下的指针,考虑最后输出只需要从每行的头指针向右跳, 那么修改实际上是将矩阵左边一列. ...
- #数位dp,高精度#洛谷 2235 [HNOI2002]Kathy函数
题目 分析 首先这个\(f\)函数其实求的是二进制下的回文数,简单证明一下 设\(n\)在二进制下的回文数为\(n'\),第一二条显然 第三条\(f(2n)=f(n)\Rightarrow \over ...
- 深入理解 Java 方法重载与递归应用
Java 方法重载 方法重载 允许在同一个类中定义多个具有相同名称的方法,但 参数列表 必须不同. 语法: returnType methodName(parameter1, parameter2, ...
- SQL 数据操作技巧:SELECT INTO、INSERT INTO SELECT 和 CASE 语句详解
SQL SELECT INTO 语句 SELECT INTO 语句将数据从一个表复制到一个新表中. SELECT INTO 语法 将所有列复制到新表中: SELECT * INTO newtable ...
- JS-鼠标点击出现爱心
新建js文件,将代码复制到js文件中,然后在HTML文件中引入js,这样鼠标点击后就可以出现爱心 // js.js !function(e, t, a) { function r() { for (v ...
- Harbor仓库高可用
一.搭建两台Harbor 搭建方法参考:https://www.cnblogs.com/hanfuming/p/15750031.html 二.两台新建相同项目 三.第二台harbor上仓库管理中新建 ...
- 整理k8s————k8s概念[一]
前言 简单整理一下k8s. 正文 k8s 是基于容器的一套解决方案,那么解决了什么问题呢? 解决了分布式部署问题. k8s 特点: 轻量 开源 弹性伸缩:IPVS 知识图谱: 更多的看官网就好. 结 ...
- RestfulApi 学习笔记——内容协商(三)
前言 什么是内容协商呢?是这样的,我们在请求的时候都有两个属性,一个是Content-Type,另一个是accept,这两个什么意思呢? content-type 这个是表示自己传输的是什么内容,就像 ...
- docker搭建kafka集群实践
前言 本文主要介绍了如何通过docker搭建一个可以用于生产环境的kafka集群. kafka集群使用了3个节点,依赖zookeeper进行协调,所以会同时搭建一套3节点的zookeeper集群. 准 ...
- Ajax 原理是什么?如何实现?
一.是什么 AJAX全称(Asynchronous Javascript And XML) 即异步的JavaScript 和XML,是一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情 ...