ES5数组新增
一、 arr.forEach
arr.forEach(callback[, thisArg]),callback接受3个参数,顺序依次是,currtValue
,index
,array
,thisArg可选,当前this
值(使用箭头函数,thisArg
参数会被忽略)
示例代码:
[0,1,2].forEach(alert)
注意: 1. 无返回值。2. 不能中止或跳出 forEach 循环
二、array.map
array.map(callback[, thisArg])和forEach用法一样,但map
方法有返回值(一个新数组,每个元素都是回调函数的结果)
示例代码:
[0,1,2,3].map(parseInt) // [0, NaN, NaN, NaN]
三、array.filter
array.filter(callback[, thisArg]),用法类似于map
,返回过滤后的新数组,callback
需要返回true
或false
示例代码:
const arr = [0, 1, 2, 3];
const newArray = arr.filter(item => item);
console.log(newArray); // [1, 2, 3]
四、array.some
array.some(callback[, thisArg]),测试是否至少有一个元素可以通过被提供的函数方法,如果测试有元素通过,循环中止。该方法返回一个Boolean
类型的值。
示例代码:
const arr = [4, 5, 6, 7]
let num = 0
const newArr = arr.some(item => {
num++
return item === 4
})
console.log(num) // 1
console.log(newArr) // true
五、array.every
array.every(callback[, thisArg]),与array.some
用法类似,every()
方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。如果检测到没有通过的即循环中止。该方法返回一个Boolean
类型的值。
示例代码:
const arr = [4, 5, 6, 7]
let num = 0
const newArr = arr.every(item => {
num++
return item <= 5
})
console.log(num) // 3
console.log(newArr) // false
六、array.indexOf
array.indexOf(searchElement[, fromIndex = 0]) 第一个参数为查找的值。 第二个参数为从哪里开始查找,若缺省或格式不合要求,使用默认值0,-1为从倒数第一个开始依次类推。 返回值为首个被找到的元素在数组中的索引位置; 若没有找到则返回 -1
示例代码:
const arr = [1,3,5,7]
const newArr = arr.indexOf(5, "x")
console.log(newArr) // 2
七、array.lastIndexOf
array.lastIndexOf(searchElement[, fromIndex = 0]),用法类似于array.indexOf
不同处:lastIndexOf
是从字符串的末尾开始查找,而不是从开头。fromIndex
的默认值是array.length - 1
而不是0.
八、array.reduce
array.reduce(callback[, initialValue]),callback函数接受4个参数:之前值、当前值、索引值以及数组本身,即:previous
,currtValue
,index
,array
。initialValue
参数可选,表示初始值。若指定,则当作最初使用的previous
值;如果缺省,则使用数组的第一个元素作为previous
初始值,同时current
往后排一位,相比有initialValue
值少一次迭代。
const sum = [1, 2, 3, 4].reduce((previous, current, index, array) => previous + current);
console.log(sum); // 10
说明:
- 因为initialValue不存在,因此一开始的previous值等于数组的第一个元素。
- 从而current值在第一次调用的时候就是2.
- 最后两个参数为索引值index以及数组本身array.
九、array.reduceRight
和array.reduce
用法一样,实现上的差异在于array.reduceRight
从数组末尾开始
- java spark-streaming接收TCP/Kafka数据
- hiveQL求差集
- hiveQL去重
- springboot高并发redis细粒度加锁(key粒度加锁)
- java使用spark/spark-sql处理schema数据
- redis的发布订阅模式pubsub
- linux命令和awk
- django集成celery之callback方式link_error和on_failure
- 使用beanstalkd实现定制化持续集成过程中pipeline
- 用SQLite查看编辑android导出的微信聊天记录
- 使用HDFS客户端java api读取hadoop集群上的信息
- 使用Fabric一键批量部署上线/线上环境监控
- springboot使用zookeeper(curator)实现注册发现与负载均衡
- django使用xlwt导出excel文件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 第015课 NOR Flash操作原理及裸机程序分析
- Redash 二开 - 前端环境搭建
- Verilog Task Concurrent Activation
- then, catch, finally如何影响返回的Promise实例状态
- 第016课 Nand Flash操作原理及裸机程序分析
- 第20课 SPI协议详解及裸机程序开发分析
- 第017课 LCD原理详解及裸机程序分析
- 微信小程序:一文彻底搞懂openid和unionid
- MySQL 最佳实践:程序端连接池配置
- Java获取CPU序列号
- 第018课 ADC和触摸屏硬件原理详解及裸机编程
- Mysql优化概述及其压力测试工具
- 第019课 I2C协议详解及裸机程序分析
- Redis适配采坑记
- 笔记 GWAS 操作流程6-2:手动计算GWAS分析中的GLM和Logistic模型