Array.prototypr.every():为数组中的每一个元素执行一次callback函数,直到它找到一个使callback返回false的元素。

  如果找到一个这样的元素,every方法会立即返回false,否则会为每一个元素返回true,every也会返回true。callback被调用时传入三个参数:元素值,元素的索引,原数组。callback只会为那些已经被赋值的索引调用,不会为那些被删除或从来没被赋值的索引调用。every不会改变原数组。空数组返回true。
  语法:arr.every(callback[, thisArg])

function isBigEnough(element, index, array) {return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
// passed is false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
// passed is true

  

Array.prototype.filter():创建一个新数组,其包含通过所提供函数实现的测试的所有元素。

  语法:var new_array = arr.filter(callback[, thisArg])

function isBigEnough(value) {
return value >= 10;
}var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);// filtered is [12, 130, 44]// ES6 wayconst isBigEnough = value => value >= 10;let [...spread]= [12, 5, 8, 130, 44];let filtered = spread.filter(isBigEnough);// filtered is [12, 130, 44] 

  filter为数组中的每个元素调用一次callback函数,并利用所有使得callback返回true或等价于true的值的元素创建一个新数组。callback只会在已经赋值的索引上被调用,对于那些已经被删除或者从来未被赋值的索引不会被调用。那些没有通过callback测试的元素会被跳过,不会包含在新数组中。filter 不会改变原数组,它返回过滤后的新数组。

Array.prototype.forEach():对数组的每个元素执行一次提供的函数。该方法没有返回一个新数组,也没有返回值!
  语法:

array.forEach(callback(currentValue, index, array){//do something
}, this)//或array.forEach(callback[, thisArg])

  Eg:

const arr = ['a', 'b', 'c'];arr.forEach(function(element) {console.log(element);
});arr.forEach( element => console.log(element));// a
// b
// c

  forEach方法按升序为数组中含有效值的每一项执行一次callback函数,那些已删除或者未初始化的项将被跳过(但不包含值为undefined的项)。没有办法终止或跳出forEach循环,除了抛出一个异常。
  如果数组在迭代时被修改了,则其它元素会被跳过:

var words = ["one", "two", "three", "four"];
words.forEach(function(word) {
console.log(word);
console.log(words);
if (word === "two") {words.shift();
}
});
// one
// ["one", "two", "three", "four"]
// two
// ["one", "two", "three", "four"]
// four
// ["two", "three", "four"]
//"one"被删除后,后面的元素向前移动一位,"three"移到"two"的位置上,而"two"位置已经被迭代过了,所以会跳过"three"。

Array.prototype.map():创建一个新数组,其结果是该数组中的每个元素都调用一个函数后返回的结果。
  语法:

let new_array = arr.map(function callback(currentValue, index, array) { // Return element for new_array
}[, thisArg])

  Eg:

// ES6
let numbers = [1, 5, 10, 15];
let doubles = numbers.map( x => x ** 2);// doubles is now [1, 25, 100, 225]
// numbers is still [1, 5, 10, 15]let numbers = [1, 4, 9];
let roots = numbers.map(Math.sqrt);
// roots is now [1, 2, 3]
// numbers is still [1, 4, 9]

  map方法会给原数组中的每个元素都按顺序调用一次callback函数。callback每次执行后的返回值(包括undefined)组合起来形成一个新数组。callback函数只会在有值的索引上被调用,那些从来没被赋过值或者使用delete删除的索引则不会被调用。

Array.prototype.reduce():reduce()方法对累加器和数组中的每个元素(从左到右)应用一个函数,将其减少为单个值。

var sum = [0, 1, 2, 3].reduce(function (a, b) {
return a + b;
}, 0);
// sum is 6//ES6
var total = [ 0, 1, 2, 3 ].reduce(
( acc, cur ) => acc + cur,
0
);

Array.prototype.some():some() 方法测试数组中的某些元素是否通过由提供的函数实现的测试。
  some 为数组中的每一个元素执行一次 callback 函数,直到找到一个使得 callback 返回一个“真值”(即可转换为布尔值 true 的值)。如果找到了这样一个值,some 将会立即返回 true。否则,some 返回 false。callback 只会在那些”有值“的索引上被调用,不会在那些被删除或从来未被赋值的索引上调用。与Array.prototypr.every()是相对的,参考Array.prototypr.every()即可。

转载于:https://www.cnblogs.com/zhengxj1991/p/9100470.html

数组的一些与遍历相关的方法总结相关推荐

  1. php一维数组的定义,PHP 数组定义、遍历的实现方法

    前言:接下来介绍的PHP学习笔记之数组的定义.遍历,希望对您有帮助.那么下面我们一起看看,具体内容所述如下: php中数组是一个特殊的数据类型,可以说是对象也可说是存储器了, 他里面可以存储php中其 ...

  2. JS数组与对象的遍历方法大全

    本文简单解析各种数组和对象属性的遍历方法: 原生for循环.for-in及forEach ES6 for-of方法遍历类数组集合 Object.key()返回键名的集合 jQuery的$.each() ...

  3. PHP数组的访问方法有几种,PHP数组的几种遍历方法

    数组的几种遍历方法 数组必须是索引数组,而且下标还必须是连续的 *            (索引数组下标还可以不连序,数组还有关联数组) * * *2. 使用foreach语句循环遍历数组 *     ...

  4. js数组遍历所有元素方法 总结

    方法一:for(){} 遍历 这是最笨的方法,low到不解释 缺点:蠢! var arr = [1,2,3,"a",true]; for(var i=0;i<arr.leng ...

  5. 尚硅谷JS笔记-数组的剩余方法、函数的方法 、arguments 、Date、Math、包装类、字符串的相关方法、正则表达式、字符串和正则相关的方法的总结及归纳

    目录 一.数组的剩余方法 二.函数的方法 三.arguments 四.Date 五.Math 六.包装类 七.字符串的相关方法 八.正则表达式 九.正则表达式 十.字符串和正则相关的方法 一.数组的剩 ...

  6. JS数组的几种遍历方法

    JS数组的几种遍历方法 定义一个数组 var arr = ['apple','orange','banner','dpn','dulin'] 1.for循环 for (var i = 0; i < ...

  7. js数组遍历的十种方法

    1. some() 遍历数组,只要有一个以上的元素满足条件就返回 true,否则返回 false ,退出循环 对数组中每个元素执行一次ok函数,知道某个元素返回true,则直接返回true.如果都返回 ...

  8. JavaScript数组遍历5 every方法

    数组的every方法也可以对数组进行遍历,every方法也接上两个参数,第一个参数是一个函数,第二个参数是传入值:其中第一个参数函数可以接收3个参数,第一个参数是当前值,第二个参数是当前值的索引值,第 ...

  9. python反序数函数_python range()函数取反序遍历sequence的方法

    python range()函数取反序遍历sequence的方法 python中的range函数取反序有两种方式 第一种:先构建一个列表,然后对列表中的元素进行反转. 例如: a=range(5) f ...

最新文章

  1. java 静态方法和实例方法的区别
  2. 把 SOAP 服务转化为 REST 服务(REST Service 的最佳实践,第 3 部分)
  3. 13.2System类中的常用方法
  4. php错误提示:date_default_timezone_get
  5. 实战SSM_O2O商铺_10【商铺注册】Service层的实现
  6. 线下门店场景化互动类产品浅析
  7. Electron中实现拖拽文件进div中通过File对象获取文件的路径和内容
  8. ds证据理论python实现_ALI模型理论以及Python实现
  9. 公网访问阿里云数据库MongoDB——填坑笔记
  10. 基于springboot框架的博客系统
  11. DAG最长路问题 hdu-1224
  12. Python办公自动化 - 4 PDF办公自动化
  13. 边缘保留滤波matlab,【DIP】各种边缘保留滤波器一览
  14. 《通信原理与应用》小结
  15. python中的Empty suite
  16. 计算机utf-8/gbk/utf-16对照表
  17. 新增数学与人工智能学部,考数据结构!齐鲁工业大学(山东省科学院)计算机考研...
  18. 爪哇国新游记之三十三----目录文件操作
  19. Linux rpm -ivm,PowerLinux 7R1项目实施手册PDF
  20. 使用每步FTP服务在魔百盒CM201-2上建立FTP服务器

热门文章

  1. jQuery元素过滤
  2. mysql在没有任何用户的情况下,如何恢复
  3. [整理]MySql批量数据导入Load data infile解决方案
  4. Tomcat的SessionID引起的Session Fixation和Session Hijacking问题
  5. 集成 AquaLogic BPM Suite 6.0 和 AquaLogic Service Bus
  6. trl meaning genearlly we find 6
  7. easy and hard things
  8. 如果记录没有跟得上创造和学习
  9. C++模板特化的一个BUG?
  10. 关于armv7指令集的一个直观数据