js基础之数组迭代方法

Array.forEach()

forEach() 方法为每个数组元素调用一次函数(回调函数)。

var txt = "";
var numbers = [45, 4, 9, 16, 25];
numbers.forEach(myFunction);

function myFunction(value) {
  txt = txt + value + "<br>";
}
Array.map()

map() 方法通过对每个数组元素执行函数来创建新数组。
map() 方法不会对没有值的数组元素执行函数。
map() 方法不会更改原始数组。

这个例子将每个数组值乘以2:

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value, index, array) {
  return value * 2;
}
console.log(numbers2 );     //90,8,18,32,50

请注意,该函数有 3 个参数:
项目值
项目索引
数组本身
当回调函数仅使用 value 参数时,可以省略索引和数组参数:

var numbers1 = [45, 4, 9, 16, 25];
var numbers2 = numbers1.map(myFunction);

function myFunction(value) {
  return value * 2;
}
Array.filter()

filter() 方法创建一个包含通过测试的数组元素的新数组。
这个例子用值大于 18 的元素创建一个新数组:

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
console.log(over18);     //45,25

请注意此函数接受 3 个参数:
项目值
项目索引
数组本身
在上面的例子中,回调函数不使用 index 和 array 参数,因此可以省略它们:

var numbers = [45, 4, 9, 16, 25];
var over18 = numbers.filter(myFunction);

function myFunction(value) {
  return value > 18;
}
Array.reduce()/Array.reduceRight()

reduce()/reduceRight() 方法在每个数组元素上运行函数,以生成(减少它)单个值。
reduce()/reduceRight() 方法不会减少原始数组。

这个例子确定数组中所有数字的总和:

//reduce() 方法能够接受一个初始值:
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce(myFunction, 100);

function myFunction(total, value) {
  return total + value;
}
//sum=199
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduceRight(myFunction);

function myFunction(total, value) {
  return total + value;
}
//sum=99
Array.every()

every() 方法检查所有数组值是否通过测试。

这个例子检查所有数组值是否大于 18:

var numbers = [45, 4, 9, 16, 25];
var allOver18 = numbers.every(myFunction);

function myFunction(value) {
  return value > 18;
}
//返回false
Array.some()

some() 方法检查某些数组值是否通过了测试。

这个例子检查某些数组值是否大于 18:

var numbers = [45, 4, 9, 16, 25];
var someOver18 = numbers.some(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
//返回true
//请注意此函数接受 3 个参数:项目值,项目索引,数组本身
Array.indexOf()

indexOf() 方法在数组中搜索元素值并返回其位置。

注释:第一个项目的位置是 0,第二个项目的位置是 1,以此类推。

//检索数组中的项目 "Apple":
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.indexOf("Apple");
//Apple 被找到的位置是:1

如果未找到项目,Array.indexOf() 返回 -1。
如果项目多次出现,则返回第一次出现的位置。

Array.lastIndexOf()

Array.lastIndexOf() 与 Array.indexOf() 类似,但是从数组结尾开始搜索。

//检索数组中的项目 "Apple":
var fruits = ["Apple", "Orange", "Apple", "Mango"];
var a = fruits.lastIndexOf("Apple");
Array.find()

find() 方法返回通过测试函数的第一个数组元素的值。

这个例子查找(返回)大于 18 的第一个元素的值:

var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
//大于 18 的第一个值是:25
//3 个参数:项目值,项目索引,数组本身
Array.findIndex()

findIndex() 方法返回通过测试函数的第一个数组元素的索引。

这个例子查找大于 18 的第一个元素的索引:

var numbers = [4, 9, 16, 25, 29];
var first = numbers.findIndex(myFunction);

function myFunction(value, index, array) {
  return value > 18;
}
//大于 18 的第一个值的索引是:3

原文地址:https://www.cnblogs.com/jessie-xian/p/11595926.html

时间: 2024-07-31 02:06:45

js基础之数组迭代方法的相关文章

JS 数组迭代方法

js中数组迭代方法有五种 some() , every(), filter(), forEach(),map(),传入这些方法的函数会接收三个参数(数组项的值,该项在数组中的位置,数组对象本身) var items = [9,67,34,25,56]; //如果items中的所有项都大于9返回true否则返回false 全部满足条件才行 var everyResult = items.every(function(item,index,array){ return (item>9); }); a

js基础复习---数组操作

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="keywords" content="js数组操作"> <meta name="description" content="js基础之数组api练习"> <title

数组迭代方法和类数值

数组的迭代方法有every,some,forEach,fliter,map. 每个方法的参数是一个函数,函数的第一个参数是数组项,第二个参数是数组项的索引,第三个参数是数组本身 every方法对数组的每一项执行给定函数,如果每一项的执行结果都为true,则返回true; 1 //用every方法检测数组的每一项是否都是偶数,是则返回true,不是则返回false 2 function testEvery(){ 3 var a=[1,2,5,0,3,9]; 4 var result= a.ever

js便利json 数组的方法

js便利json 数组的方法 通过Jason对象获取里面某个键的值方法: 1,对象["键"]. 2,对象.键. 这篇文章主要介绍了JQuery遍历json数组的3种方法,本文分别给出了使用each.for遍历json的方法,其中for又分成两种形式,需要的朋友可以参考下 $(function () { var tbody = ""; //------------遍历对象 .each的使用------------- //对象语法JSON数据格式(当服务器端回调回来的对

数组迭代方法

常用的数组迭代方法,很多人第一想到的就是for循环,比如需要迭代出下面数组peoples年龄(age)大于30的人名(name). 1 var peoples = [ { 2 name: 'Agraj', 3 gender:'M', 4 age: 29, 5 address: { 6 city: 'Delhi', pincode: '110064' 7 } 8 }, { 9 name: 'Mark', 10 gender:'M', 11 age: 35, 12 address: { 13 cit

S1 :数组迭代方法

ECMAScript 5 还新增了两个归并数组的方法:reduce()和reduceRight().这两个方法都会迭代数组的所有项,然后构建一个最终返回的值.其中,reduce()方法从数组的第一项开始,逐个遍历到最后.而reduceRight()则从数组的最后一项开始,向前遍历到第一项.这两个方法都接收两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值.传给reduce()和reduceRight()的函数接收4 个参数:前一个值.当前值.项的索引和数组对象.这个函数返回的任何

数组迭代方法—every、filter、forEach、map、some

ECMAScript5为数组定了5个迭代方法.每个方法都接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响this的值.传入这些方法中的函数会接收三个参数:数组项的值.该项在数组中的位置和数组对象本身.根据使用的方法不同,这个函数执行后的返回值可能会也可能不会影响访问的返回值.以下是这5个迭代方法的作用. every():对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true. var numbers = [1,2,3,4,5,6,7,8];

js iterate数组迭代方法

var array = new Array("a","b","c"); array.every(function(item, index, array){ return (item == "a");}); every()     ——回调函数对每一项都返回true,则返回true some() ——回调函数对任一项返回true,则返回true filter()  ——回调函数对某些项返回true,则返回该项 forEach()

js清空array数组的方法

方式1,splice Js代码   var ary = [1,2,3,4]; ary.splice(0,ary.length); console.log(ary); // 输出 [],空数组,即被清空了 方式2,length赋值为0 这种方式很有意思,其它语言如Java,其数组的length是只读的,不能被赋值.如 Java代码   int[] ary = {1,2,3,4}; ary.length = 0; Java中会报错,编译通不过. 而JS中则可以,且将数组清空了,如 Js代码   va