var arr = [11, 22, 33, 44, 55];arr.forEach(function(x, index, a){ console.log(x + | + index + | + (a === arr));});输出为: 11|0|true 22|1|true 33|2|true 44|3|true 55|4|true11.map()map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值 。
map() 方法按照原始数组元素顺序依次处理元素 。
该方法不会改变原数组
var arr = [1, 2, 3, 4, 5];var arr2 = arr.map(function(item){ return item*item;});console.log(arr2); //[1, 4, 9, 16, 25]12.filter()filter():“过滤”功能,数组中的每一项运行给定函数,返回满足过滤条件组成的数组 。
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];var arr2 = arr.filter(function(x, index) { return index % 3 === 0 || x >= 8;});console.log(arr2); //[1, 4, 7, 8, 9, 10]13.fill() es6 新增fill()方法能使用特定值填充数组中的一个或多个元素 。当只是用一个参数时,该方法会用该参数的值填充整个数组 。
let arr = [1, 2, 3, cc , 5];arr.fill(1);console.log(arr);//[1,1,1,1,1];如果不想改变数组中的所有元素,而只是想改变其中一部分,那么可以使用可选的起始位置参数与结束位置参数(不包括结束位置的那个元素)
3 个参数: 填充数值,起始位置参数,结束位置参数(不包括结束位置的那个元素)
let arr = [1, 2, 3, arr , 5];arr.fill(1, 2);console.log(arr);//[1,2,1,1,1]arr.fill(0, 1, 3);console.log(arr);//[1,0,0,1,1];14.every()every():判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回 true 。
var arr = [1, 2, 3, 4, 5];var arr2 = arr.every(function(x) { return x < 10;});console.log(arr2); //truevar arr3 = arr.every(function(x) { return x < 3;});console.log(arr3); // false15.some()some():判断数组中是否存在满足条件的项,只要有一项满足条件,就会返回 true 。
var arr = [1, 2, 3, 4, 5];var arr2 = arr.some(function(x) { return x < 3;});console.log(arr2); //truevar arr3 = arr.some(function(x) { return x < 1;});console.log(arr3); // false16.includes() es7 新增includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则 false 。
参数有两个,其中第一个是(必填)需要查找的元素值,第二个是(可选)开始查找元素的位置
const array1 = [22, 3, 31, 12, arr ];const includes = array1.includes(31);console.log(includes); // trueconst includes1 = array1.includes(31, 3); // 从索引3开始查找31是否存在console.log(includes1); // false需要注意的是:includes使用===运算符来进行值比较,仅有一个例外:NaN 被认为与自身相等 。
let values = [1, NaN, 2];console.log(values.indexOf(NaN));//-1console.log(values.includes(NaN));//true17.reduce()和 reduceRight()这两个方法都会实现迭代数组的所有项(即累加器),然后构建一个最终返回的值 。
reduce()方法从数组的第一项开始,逐个遍历到最后 。
reduceRight()则从数组的最后一项开始,向前遍历到第一项 。
4 个参数:前一个值、当前值、项的索引和数组对象
var values = [1,2,3,4,5];var sum = values.reduceRight(function(prev, cur, index, array){return prev + cur;},10); //数组一开始加了一个初始值10,可以不设默认0console.log(sum); //2518.toLocaleString() 和 toString()将数组转换为字符串
const array1 = [22, 3, 31, 12];const str = array1.toLocaleString();const str1 = array1.toString();console.log(str); // 22,3,31,12console.log(str1); // 22,3,31,1219. find()和 findIndex()find()与 findIndex()方法均接受两个参数:一个回调函数,一个可选值用于指定回调函数内部的 this 。
推荐阅读
- 一篇详细的Debian系统安装配置手册
- 超详细Prometheus入门教程
- 如何在Linux安装防火墙,你可能不会见到这么详细的教程。
- 按茶色不同分类之青茶,铁观音详细的分类
- 安卓面试题到处攒,一到面试就忘个干净?来看看这份超详细的整理
- 超详细的MySQL工作原理 体系结构
- 不拆分网线,一根网线实现IPTV和上网单线复用,手把手超详细
- 安徽铁观音的制作方法,铁观音详细的分类
- 带你实现一个静态服务器,超详细
- 网络编程之 Https 详细分析,超详细知识点
