`
换个号韩国红果果
  • 浏览: 48023 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

js array对象的迭代方法

    博客分类:
  • web
阅读更多
所有方法都接受两个参数:(fn,ctx);
默认的函数里面ctx是window,现在可以进行指定。
1.forEach 该方法接受一个函数作为参数, 对数组中的每个元素
使用该函数  return 语句失效
function square(num) {
print(num, num * num);
}
var nums = [1,2,3,4,5,6,7,8,9,10];
nums.forEach(square);

2.every 该方法接受一个返回值为布尔类型的函数, 对数组中的每
个元素使用该函数。 如果对于所有的元素, 每一项均返回 true, 则该方法返回 true。 下面
每一项都满足条件 相当于数学上面的&&
是一个例子://可以理解为数学上与的关系。都满足才返回true。
function isEven(num) {
return num % 2 == 0;
} v
ar nums = [2,4,6,8,10];
var even = nums.every(isEven);
if (even) {
print("all numbers are even");
} e
lse {
print("not all numbers are even");
}

3.some 它相当于数学上的或,有一个满足则返回true否则返回false。 该方法也接受一个返回值为布尔类型的函数, 只要有一个元素使得该函数返回 true,
相当于每一个返回值的||的关系
该方法就返回 true。

function isEven(num) {
return num % 2 == 0;
}
var nums = [1,2,3,4,5,6,7,8,9,10];
var someEven = nums.some(isEven);
if (someEven) {
print("some numbers are even");
}
else {
print("no numbers are even");
}

4.reduce() 方法接受一个函数, 返回一个值。 该方法会从一个累加值开始, 不断对累加值和
由于第一次迭代时 传入的第一个第二个参数依次是数组里的0 1元素 ,可以手动传入第一个参数
a=[20,10,40];
a.reduce(function(v,m){
console.log(v,m);
return v+m
},30)
第一次是30 ,20

数组中的后续元素调用该函数, 直到数组中的最后一个元素, 最后返回得到的累加值。

function add(runningTotal, currentValue) {
return runningTotal + currentValue;
} v
ar nums = [1,2,3,4,5,6,7,8,9,10];
var sum = nums.reduce(add);
print(sum); // 显示 55


reduce() 方法也可以用来将数组中的元素连接成一个长的字符串:

function concat(accumulatedString, item) {
return accumulatedString + item;
} 
var words = ["the ", "quick ","brown ", "fox "];
var sentence = words.reduce(concat);
print(sentence); // 显示 "the quick brown fox"



reduce的变形 它实质上是对数组里面每一个的值进行相加(乘)运算。
实际业务中会遇见需求:
比如
arr=[
{fruit:'香蕉',id:2},
{fruit:'草莓',id:3},
{fruit:'橙子',id:4}
]

需要将其中的fruit共同来组成一个以,分隔的字符串
a.reduce(function(prev,curr,ind){
return (ind===1?prev['fruit']: prev)+"," +curr["fruit"]
})

因为在第一次迭代时prev是第一个对象,以后的话,是前面相加的值,故需要进行区分
当然,可能比如下一次是对kind这个字段进行以上运算,所以需要把key提取出来。
 function get_str(a,key='kind'){
  a.reduce(function(prev,curr,ind){
return (ind===1?prev[key]: prev)+"," +curr[key]
})
}

这样的话基本上平时的需求都可以完成了
reduceRight() 方法, 和 reduce() 方法不同, 它是从右到左执行.
5.map().两个迭代器方法可以产生新数组: map() 和 filter()。 map() 和 forEach() 有点儿像, 对数组中的每个元素使用某个函数。 两者的区别是 map() 返回一个新的数组, 该数组的元素是对原有元素应用某个函数得到的结果。
function curve(grade) {
return grade += 5;
}
var grades = [77, 65, 81, 92, 83];
var newgrades = grades.map(curve);
print(newgrades); // 82, 70, 86, 97, 88

or

function first(word) {
return word[0];
} v
ar words = ["for","your","information"];
var acronym = words.map(first);
print(acronym.join("")); // 显示 "fyi"

6. filter方法,利用指定的函数确定是否在返回的数组中包含值为true的元素
  • 大小: 66.5 KB
分享到:
评论

相关推荐

    JavaScript中的Array 对象(数组对象)_.docx

    在JavaScript中,Array对象是处理一组有序数据的关键结构。它提供了丰富的功能,使得在脚本中操作和管理数据集合变得简单。以下是对标题和描述中所提到的JavaScript Array对象的详细解释: 1. 创建Array对象: - ...

    JS 操作Array数组的方法及属性实例解析

    JavaScript中的Array对象是编程中非常基础且重要的部分,它提供了丰富的操作数组的方法和属性,使得在处理序列数据时变得高效且灵活。这篇文章主要探讨了Array的三个关键属性:length、prototype和constructor,以及...

    JavaScript数组对象Array案例.pdf

    Array对象提供了丰富的内置方法和属性,使得对数组的操作变得简单且高效。本文将深入探讨JavaScript数组对象Array的一些关键知识点,并通过提供的案例进行解析。 首先,数组的创建有多种方式。最常见的是使用`new ...

    JavaScript核心对象参考手册

    4. **数组Array**: `Array`对象提供了一套丰富的数组操作方法,如`push`、`pop`、`shift`、`unshift`、`slice`、`splice`、`concat`等。此外,还有`forEach`、`map`、`filter`等高级方法。 5. **字符串String**: `...

    js代码-自定义对象创建迭代器

    3. **Array.from()**和`Array.of()`:这两个方法都接受可迭代对象,将它们转换为数组。`Array.from()`还可以接受第二个参数,用于映射每个元素。 通过自定义迭代器,我们可以扩展JavaScript的基本迭代能力,实现更...

    ES6 迭代器与可迭代对象的实现

    本文将探讨ES6迭代器和生成器的实现机制,以及可迭代对象的内部原理和使用方法。 迭代器是一种特殊对象,它遵循特定的接口(iterator interface),这个接口要求有next方法,该方法返回一个包含两个属性的对象,即...

    javascript中Array数组的迭代方法实例分析

    在JavaScript中,数组对象提供了多种迭代方法,这些方法允许我们高效地遍历数组并对其中的元素进行处理。本文将深入探讨`filter()`、`map()`、`every()`、`some()`以及`forEach()`这五个核心的数组迭代方法,并通过...

    javaScript数组迭代方法详解_.docx

    JavaScript 数组迭代方法是指数组对象上的一些方法,这些方法可以对数组中的每一项进行操作,例如遍历、过滤、映射等。这些方法都可以接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象。 1...

    javascript批量添加对象

    如果你有一个对象数组,想把它们合并成一个大对象,可以使用`Array.reduce()`方法: ```javascript let objectsArray = [ { key1: 'value1', key2: 'value2' }, { key3: 'value3', key4: 'value4' } ]; let ...

    js对象之JS入门之Array对象操作小结

    还有其他方法如`splice()`用于插入、删除或替换数组元素,`sort()`用于排序数组元素,`indexOf()`和`lastIndexOf()`查找元素索引,以及`forEach()`、`map()`、`filter()`等迭代方法,这些都是JavaScript中处理数组时...

    javascript Array对象使用小结

    JavaScript的Array对象在日常开发中扮演着重要角色,了解并熟练运用它的各种方法和属性能极大地提高编程效率。需要注意的是,由于其基于对象的实现,一些操作可能会有性能开销,因此在处理大量数据时需要谨慎选择...

    JS常用对象及用法属性的总结(全)

    JavaScript,简称JS,是一种广泛应用于Web开发的轻量级脚本语言。它的对象系统是其核心特性之一,提供了丰富的内置对象以及自定义对象的能力。在这个总结中,我们将深入探讨JavaScript中的常见对象及其重要属性和...

    JavaScript中Array对象用法实例总结

    JavaScript的Array对象还有其他许多实用的方法,如`push()`、`pop()`用于在数组末尾添加或移除元素,`shift()`、`unshift()`用于在数组开头添加或移除元素,`indexOf()`和`lastIndexOf()`用于查找元素的位置,`...

    javascript 核心对象代码

    10. **JSON对象**:`JSON`对象提供了`parse()`和`stringify()`两个方法,分别用于将JSON字符串解析成JavaScript对象,以及将JavaScript对象转换成JSON字符串。 11. **Map和Set对象**:ES6引入了`Map`和`Set`,它们...

    【JavaScript源代码】学会javascript之迭代器.docx

    JavaScript中的迭代器是一种重要的设计模式,它允许程序员遍历各种数据结构,如数组、对象、Map、Set等,而无需关心这些数据结构的内部实现。迭代器的核心在于它遵循ES6引入的迭代协议,该协议使得不同的数据结构...

    即用即查JavaScript核心对象参考手册:JavaScript

    全局对象在任何作用域下都可访问,它包含了一些内置属性和方法,如`window`(在浏览器环境中)和`global`(在Node.js环境中)。`undefined`、`NaN`、`Infinity`、`eval`、`setTimeout`、`setInterval`等都是全局...

    JavaScript 判断判断某个对象是Object还是一个Array

    在JavaScript中,判断对象类型的方法主要有以下几种: 1. typeof操作符: `typeof`是最基本的类型检测操作符,它能够返回数据的基本类型。例如,使用`typeof`操作符可以区分`number`、`string`、`boolean`、`...

    js中Array.forEach跳出循环的方法实例.docx

    在JavaScript编程中,`Array.forEach` 是一种常用的数组迭代方法,用于遍历数组中的每一个元素,并执行相应的操作。然而,在某些场景下,我们可能需要提前结束循环(例如在找到满足条件的第一个元素后就停止遍历)。...

    JavaScript对象经典小册 chm

    3. forEach、map、filter、reduce等迭代方法:这些方法使你可以遍历数组并进行各种操作,如遍历、转换、筛选或累加。 4. 扩展运算符(...):在ES6中引入,可以用来复制或合并数组,使得数组操作更简洁。 三、事件...

Global site tag (gtag.js) - Google Analytics