1.扩展运算符(...)
将转换为数组,或展开数组 用法:...arr
例子:
1.展开数组
let arr=["apple","banana","orange"]
let arr="abc"
console.log(...arr)
2.合并数组
let a = [1, 2, 3];
let b = [4, 5, 6];
a.push(...b);
3.数组查找最大值
let a = [1, 2, 3];
let b = Math.max(...a);
4.复制数组
1.普通复制
let a1=[1,2,3];
let a2=a1;
a2.push(4);
a2并不是a1的克隆,而是指向同一份数据的另一个指针。修改a2,会直接导致a1的变化
2.es5复制(a2改变不会导致a1改变)
let a1=[1,2,3];
let a2=a1.concat();
a2.push(4);
3.es6复制(a2改变不会导致a1改变)
let a1=[1,2,3];
let a2=[...a1];
a2.push(4);
2.Array.from()
将类数组转为真正的数组
类数组(有length就可以),arguments,可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)
用法:Array.from(a)
例子:
1.字符串转数组
let a="abd";
let b=Array.from(a);
b//["a", "b", "d"]
2.对象转数组(必须加length)
let arrayLike1 = {
"0": "lucy",
"1": "12",
"2": "女",
"3": "apple",
length: 3
};
let b = Array.from(arrayLike1);
3.from第二个参数
let arrayLike1 = ("123");
let b = Array.from(arrayLike1,item=>{
return item*2
});
3.Array.of()
用于将一组值,转换为数组 返回参数值组成的数组
用法:Array.of(arr)
例子:
1.转数组
let b = Array.of(123);
let b = Array.of(1,3);
作用:弥补数组构造函数Array()的不足。
参数个数的不同,Array()行为有差异
Array方法没有参数、一个参数、三个参数时,返回结果不一 样。
{
没有参数: Array() //[]
一个参数:Array(3) //[ , , ,]
二个参数:Array(3,2) //[ 3,2]
二个参数以上:Array(3,2,3) //[ 3,2,3]
}
4.find(),findIndex()
find():用于找出第一个符合条件的数,找到返回这个值,没有返回undfine
findIndex():返回下标,没有返回-1;
用法:类似map()
例子:
1.查找
let arrayLike =[1,2,3,6,9,6]
let b = arrayLike.findIndex(item=>{
return item>9;
})
作用:indexOf()不能识别NAN成员
5.fill()
使用给定值,填充一个数组
用法:fill(给定值,填充的起始位置,结束位置)
例子: 1.只有一个参数时:
['a', 'b', 'c'].fill(7, 1, 2)
fill方法,向原数组全部替换为7
2.两个参数时:
['a', 'b', 'c'].fill(7, 2)
fill方法从 2号位开始,向原数组填充 7,一直到末尾
3.三个参数时:
['a', 'b', 'c'].fill(7, 1, 2)
fill方法从 1 号位开始,向原数组填充 7,到 2 号位之前结束
6.keys(),entries(),values()
用于遍历数组
keys():获取下标
entries():获取键值对
values():获取键值
例子: 1.keys()
let arrayLike =["apple","res","yellow"]
let b = arrayLike.keys()
for(let i of b){
console.log(i)//0,1,2
}
2.entries()
let arrayLike =["apple","res","yellow"]
let b = arrayLike.entries()
for(let i of b){
console.log(i)// [0, "apple"], [1, "res"]
}
3.values()
let arrayLike =["apple","res","yellow"]
let b = arrayLike.values()
for(let i of b){
console.log(i)// apple, res
}