es6 数组扩展方法
1.扩展运算符
含义: 扩展运算符,三个点(...),将一个数组转为用逗号分隔的参数顺序。
例如:
console.log([1,2,3]);
console.log(...[1,2,3]);
结果: [1,2,3]
1,2,3
用法: 作为函数参数
function f(x,y,z) {
console.log(y);
// 1
}
let args = [0,1,2];
f(...args);
用法:求数组的最大值
Math.max(..[14,4,44]) //44
应用:复制数组
const a1 = [1,2];
const a2 = a1;
a2[0] = 2;
a1 // [2,2]
应用: 合并数组
[1,2,...more]
应用:与解构赋值结合
[a,...reast] = list
应用: 可以将字符串转为真正的数组
console.log([...'hello'])
[ "h", "e", "l", "l", "o" ]
2.Array.from()
方法用于将两个类对象转为真正的数组。
应用:类数组对象转为真正的数组
let arrayLike = {
'0':'a',
'1':'b',
'2':'c',
length:3
}
let arr = Array.from(arrayLike);
console.log(arr);
//["a", "b", "c"]
应用:将字符串转为数组
var arr = Array.from('hello');
console.log(arr);
["h", "e", "l", "l", "o"]
如果是一个真正的数组那么返回原数组
Array.from 还可以接受第二个参数。
let arr = Array.from([1,2,3],(x)=> x*x);
console.log(arr);
// [1, 4, 9]
3.Array.of 方法用于将一组数值,转为数组
例如:
var arr = Array.of(3,11,8);
console.log(arr);
// [3, 11, 8]
4.数组实例的 copyWithin()
数组实例的copyWithin 方法,在当前数组内部,将指定位置的成员复制到其他位置,
(会覆盖原来成员),然后返回当前数组,也就是说,使用这个方法,会修改当前数组。
它接受三个参数。
target(必需):从该位置开始替换数据。
start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示倒数。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒。
5.数组的实例的 find() 和findIndex()
数组实例的find 方法,用于找出第一个符合条件的数组成员,它的参数是一个回调函
数,所有出租成员一次执行该回调函数,直到找到的哥返回值为true的成员,然后
返回该成员,如果没有符合条件的返回aundefined
let a = [1,4,-5,10].find((n)=> n <0)
console.log(a); // -5
let b = [1,5,10,15].find(function (value,index,arr) {
return value > 9;
})
console.log(b); // 10
findIndex 方法的用法与find 方法返回非常类似,返回第一个符合条件的数组
成员的位置,如果所有成员不符合条件返回-1。
例如[1,5,10,15].findIndex(function(value,index,arr){
return value > 9;
})
6.数组实例的fill()
fill 方法使用给定值,填充一个数组;
var arr = ['a','b','c'].fill(7);
console.log(arr); // [7,7,7]
7.数组实例的 entries(), keys() 和 values()用于遍历数组,他们都是返回一个遍历器对象。
keys() 是对键名的遍历,values() 是对键值的变量,entries() 是对键值对的遍历。
for (let index of ['a','b'].keys()){
console.log(index);
}
8.数组实例的includes()
Array.prototype.includes 方法返回一个布尔值,表示某个数组是否包含给定的值。
[1,2,3].includes(2) // true
[1,2,3,4].includes(4) //false
- 【LeetCode 202】 关关的刷题日记35 – Leetcode 202. Happy Number
- JAVA多线程高并发学习笔记(三)——Callable、Future和FutureTask
- 算法模板——Trie树
- JavaScript Alert 函数执行顺序问题
- 算法模板——计算几何1(图形面积)
- 算法模板——线段树6(二维线段树:区域加法+区域求和)(求助phile)
- 【LeetCode 242】 关关的刷题日记36 Valid Anagram
- javascript闭包
- 【LeetCode 438】关关的刷题日记37 Find All Anagrams in a String
- 还在手动给css加前缀?no!几种自动处理css前缀的方法简介
- 算法模板——线段树5(区间开根+区间求和)
- Spring基础篇——通过Java注解和XML配置装配bean
- Java多线程高并发学习笔记(二)——深入理解ReentrantLock与Condition
- 算法模板——线段树1(区间加法+区间求和)
- 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 数组属性和方法
- Flask从零到一 1 | 虚拟环境和第一个flask程序
- 按照元素指定条件筛选结构体数组
- 多目标优化按支配关系分层实现
- CentOS 7 解决丢失 nginx.pid
- $(function(){})和$(document).ready(function(){})
- javascript中的setTimeout() 方法和clearInterval() 方法和setInterval() 方法
- matlab生成数字1-n的列向量
- JavaScript中的匿名函数及函数的闭包
- ios下Safari无法触发click事件的处理
- 禁止网页右键、复制、另存为、查看源文件等功能
- ajax知识点
- 前端特效常用代码
- VBA编写Ribbon Custom UI编辑器02——编码转换
- web开发中常用的算法和函数
- nodejs创建线程问题