所有方法都接受两个参数:(fn,ctx);
默认的函数里面ctx是window,现在可以进行指定。
1.forEach 该方法接受一个函数作为参数, 对数组中的每个元素
使用该函数 return 语句失效
2.every 该方法接受一个返回值为布尔类型的函数, 对数组中的每
个元素使用该函数。 如果对于所有的元素, 每一项均返回 true, 则该方法返回 true。 下面
每一项都满足条件 相当于数学上面的&&
是一个例子://可以理解为数学上与的关系。都满足才返回true。
3.some 它相当于数学上的或,有一个满足则返回true否则返回false。 该方法也接受一个返回值为布尔类型的函数, 只要有一个元素使得该函数返回 true,
相当于每一个返回值的||的关系
该方法就返回 true。
4.reduce() 方法接受一个函数, 返回一个值。 该方法会从一个累加值开始, 不断对累加值和
由于第一次迭代时 传入的第一个第二个参数依次是数组里的0 1元素 ,可以手动传入第一个参数
数组中的后续元素调用该函数, 直到数组中的最后一个元素, 最后返回得到的累加值。
reduce() 方法也可以用来将数组中的元素连接成一个长的字符串:
reduce的变形 它实质上是对数组里面每一个的值进行相加(乘)运算。
实际业务中会遇见需求:
比如
需要将其中的fruit共同来组成一个以,分隔的字符串
因为在第一次迭代时prev是第一个对象,以后的话,是前面相加的值,故需要进行区分
当然,可能比如下一次是对kind这个字段进行以上运算,所以需要把key提取出来。
这样的话基本上平时的需求都可以完成了
reduceRight() 方法, 和 reduce() 方法不同, 它是从右到左执行.
5.map().两个迭代器方法可以产生新数组: map() 和 filter()。 map() 和 forEach() 有点儿像, 对数组中的每个元素使用某个函数。 两者的区别是 map() 返回一个新的数组, 该数组的元素是对原有元素应用某个函数得到的结果。
6. filter方法,利用指定的函数确定是否在返回的数组中包含值为true的元素
默认的函数里面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的元素
发表评论
-
vue
2017-06-03 19:41 0比如 假如没有添加上响应式属性的话,那么就会出现b只是一个简 ... -
自动配置代理
2017-02-13 15:42 1614有些时候 手机或者pc上面需要频繁的切换代理与取消代理,感觉切 ... -
对话框回调
2017-01-11 10:26 872今天遇见一个需求 在提交数据时需要同时弹出3个确认菜单,点击了 ... -
svg, 支持mouseover
2017-01-09 18:07 1071今天项目中的需求,是在一个fill后的svg path上面加上 ... -
vue 生命周期钩子
2017-01-07 22:11 1691和生命一样,vue组件创 ... -
vue,vue-router,vux,综合
2017-01-04 17:36 948实例化vue实例时初始化router store 状态管理。触 ... -
分享vue脚手架工具,vue-cli
2017-01-04 15:42 775脚手架渲染原理: 下面 ... -
平时chrome调试遇见的 浏览器优化
2017-01-04 11:23 458js基础:在一个事件处理器(click)会形成一个闭包,可以访 ... -
百度文库复制方法
2015-11-11 10:24 1166即时对象初始化方法 (function(){ //cod ... -
qq空间刷评论工具
2015-06-25 17:48 883var a=document.getElementsB ... -
jquery内部链式调用机理
2015-06-07 21:17 1084只需要在调用该对象合适(比如下列的setStyles)的方法后 ... -
this问题 js
2015-06-07 21:08 458任何一个函数都可以被当做构造函数使用!并且new了之后一定是返 ... -
js delete 删除机理以及它的内存泄露问题的解决方案
2015-06-02 12:43 918delete删除属性时只是解除了属性与对象的绑定,故当属性值为 ... -
浮动布局
2015-05-13 17:27 0c由于其宽度略大于右边的空格,故不会飘到右边去,会被卡住 恰好 ... -
zoom.js
2015-05-12 19:01 708它的基于bootstrap 的https://raw.gith ... -
jquery-avgrund
2015-05-12 12:31 0先引入这些文件 <link r ... -
workmark
2015-05-10 18:07 481在一个容器当中 指定 ... -
jquery
2015-05-09 16:33 0$(document).ready(function(){ ... -
豆瓣电影首页的分析
2015-05-08 22:48 844网址http://movie.douban.com 1 先上 ... -
setTimeout()用法
2015-05-08 22:31 0setTimeout("$('searchI ...
相关推荐
在JavaScript中,Array对象是处理一组有序数据的关键结构。它提供了丰富的功能,使得在脚本中操作和管理数据集合变得简单。以下是对标题和描述中所提到的JavaScript Array对象的详细解释: 1. 创建Array对象: - ...
JavaScript中的Array对象是编程中非常基础且重要的部分,它提供了丰富的操作数组的方法和属性,使得在处理序列数据时变得高效且灵活。这篇文章主要探讨了Array的三个关键属性:length、prototype和constructor,以及...
Array对象提供了丰富的内置方法和属性,使得对数组的操作变得简单且高效。本文将深入探讨JavaScript数组对象Array的一些关键知识点,并通过提供的案例进行解析。 首先,数组的创建有多种方式。最常见的是使用`new ...
4. **数组Array**: `Array`对象提供了一套丰富的数组操作方法,如`push`、`pop`、`shift`、`unshift`、`slice`、`splice`、`concat`等。此外,还有`forEach`、`map`、`filter`等高级方法。 5. **字符串String**: `...
3. **Array.from()**和`Array.of()`:这两个方法都接受可迭代对象,将它们转换为数组。`Array.from()`还可以接受第二个参数,用于映射每个元素。 通过自定义迭代器,我们可以扩展JavaScript的基本迭代能力,实现更...
本文将探讨ES6迭代器和生成器的实现机制,以及可迭代对象的内部原理和使用方法。 迭代器是一种特殊对象,它遵循特定的接口(iterator interface),这个接口要求有next方法,该方法返回一个包含两个属性的对象,即...
在JavaScript中,数组对象提供了多种迭代方法,这些方法允许我们高效地遍历数组并对其中的元素进行处理。本文将深入探讨`filter()`、`map()`、`every()`、`some()`以及`forEach()`这五个核心的数组迭代方法,并通过...
JavaScript 数组迭代方法是指数组对象上的一些方法,这些方法可以对数组中的每一项进行操作,例如遍历、过滤、映射等。这些方法都可以接收两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象。 1...
如果你有一个对象数组,想把它们合并成一个大对象,可以使用`Array.reduce()`方法: ```javascript let objectsArray = [ { key1: 'value1', key2: 'value2' }, { key3: 'value3', key4: 'value4' } ]; let ...
还有其他方法如`splice()`用于插入、删除或替换数组元素,`sort()`用于排序数组元素,`indexOf()`和`lastIndexOf()`查找元素索引,以及`forEach()`、`map()`、`filter()`等迭代方法,这些都是JavaScript中处理数组时...
JavaScript的Array对象在日常开发中扮演着重要角色,了解并熟练运用它的各种方法和属性能极大地提高编程效率。需要注意的是,由于其基于对象的实现,一些操作可能会有性能开销,因此在处理大量数据时需要谨慎选择...
JavaScript,简称JS,是一种广泛应用于Web开发的轻量级脚本语言。它的对象系统是其核心特性之一,提供了丰富的内置对象以及自定义对象的能力。在这个总结中,我们将深入探讨JavaScript中的常见对象及其重要属性和...
JavaScript的Array对象还有其他许多实用的方法,如`push()`、`pop()`用于在数组末尾添加或移除元素,`shift()`、`unshift()`用于在数组开头添加或移除元素,`indexOf()`和`lastIndexOf()`用于查找元素的位置,`...
10. **JSON对象**:`JSON`对象提供了`parse()`和`stringify()`两个方法,分别用于将JSON字符串解析成JavaScript对象,以及将JavaScript对象转换成JSON字符串。 11. **Map和Set对象**:ES6引入了`Map`和`Set`,它们...
JavaScript中的迭代器是一种重要的设计模式,它允许程序员遍历各种数据结构,如数组、对象、Map、Set等,而无需关心这些数据结构的内部实现。迭代器的核心在于它遵循ES6引入的迭代协议,该协议使得不同的数据结构...
全局对象在任何作用域下都可访问,它包含了一些内置属性和方法,如`window`(在浏览器环境中)和`global`(在Node.js环境中)。`undefined`、`NaN`、`Infinity`、`eval`、`setTimeout`、`setInterval`等都是全局...
在JavaScript中,判断对象类型的方法主要有以下几种: 1. typeof操作符: `typeof`是最基本的类型检测操作符,它能够返回数据的基本类型。例如,使用`typeof`操作符可以区分`number`、`string`、`boolean`、`...
在JavaScript编程中,`Array.forEach` 是一种常用的数组迭代方法,用于遍历数组中的每一个元素,并执行相应的操作。然而,在某些场景下,我们可能需要提前结束循环(例如在找到满足条件的第一个元素后就停止遍历)。...
3. forEach、map、filter、reduce等迭代方法:这些方法使你可以遍历数组并进行各种操作,如遍历、转换、筛选或累加。 4. 扩展运算符(...):在ES6中引入,可以用来复制或合并数组,使得数组操作更简洁。 三、事件...