扩展运算符
let arr1 = [1,2],arr2 =[3,4];
let arr3 = arr1.concat(arr2);
let arr4 = [...arr1,...arr2]
console.log(arr4);
用concat 连接 然后...展开
let arr1 =[1,2];
let arr2 = [...arr1]
console.log(arr1,arr2);
把arr1的值传给 arr2,输出[ 1, 2 ] [ 1, 2 ]
如果没有...就是直接把arr1这个数组传进去[ 1, 2 ] [ [ 1, 2 ] ] 不可行;
let str ='hello';
let arr =[...str];
console.log(arr);
将如果是字符串...就拆分字符串 输出单字符传到数组里 [ 'h', 'e', 'l', 'l', 'o' ]
解构
可以将属性或值从数组或对象中取出,赋值给其他变量
let arr =[5,10];
let [a,b] =arr;
console.log(a,b);
输出5 10
let a = 5,b =10;
[a,b] = [b,a]
console.log(a,b);
输出 10 5 交换 a b 的值 且不要创建新的容器。
Map()遍历数组并操作数组的元素,返回新的数组
let arr = [10,11,13,14,15];
let newArr = arr.map(function (item ,index){
return item *2
})
console.log(newArr);//输出[ 20, 22, 26, 28, 30 ]
filter()筛选
let arr = [21,32,43,54,65];
let newArr = arr.filter(function(item ,index){
return item %2 ===0;
})
console.log(newArr);//[ 32, 54 ]
排序
let arr = [8, 9, 8, 6, 5, 99, 5, 4, 82];
for (let i = 0; i < arr.length; i++) {
for (let j = i + 1; j < arr.length; j++) {
if (arr[i] < arr[j]) { //降序,大于就是升序,需要用双重循环挨个比较,
let n = null; //声明一个临时变量,用于在比较后进行数组元素的交换
n = arr[i];
arr[i] = arr[j];
arr[j] = n;
}
}
}
console.log(arr);
冒泡排序
let arr = [10, 20, 55, 33, 9, 6, 4, 2, 4]; //冒泡排序是上一个和下一个进行比较[1]和[1+1],总的比较次数是总长度-1
for (let count = 1; count < arr.length; count++) { //比较次数,从1开始,这个1不是索引号
for (let i = 0; i < arr.length; i++) {
if (arr[i] < arr[i + 1]) { //降序,大于就是升序
let n = null;
n = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = n
}
}
}
console.log(arr);
Set()
Set()是ES6 中引入的一种数据结构,他允许存储任何类型的唯一值,无论是原始值或者是对象应用。即Set中的元素是唯一的: let s =new Set();
Set对象方法
由于调用add()方法以后返回的又是一个Set对象,所以我们能连续调用add()方法进行值的添加,这种像链条一样的方式调用方法被称为链式调用
let s = new Set();
s.add(1).add(2).add(3).add(9)
console.log(s);
链式调用
链式调用在未来应用到dom中非常常见
let arr=['a','b','c'];
let newArr = arr.reverse();
let str = newArr.join(',');
console.log(str);
等同于===
let str = arr.reverse.join(',');
非常方便
add(value)
添加数据并返回新的set结构
除了可以使用add()添加,也可以在创建同时添加
建立 set对象时传入数组,数组每一项都成为set对象的一个元素
let s = new Set([1,2,1])
console.log(s);
调用add()时传入数组,整个数组时作为set对象的一个元素
let s = new Set();
s.add([1,2,3]);
console.log(s);
console.log(s.size);
delete(value)
删除数据,会返回布尔值
has(value):查看是否存在,返回布尔值,做全等比较
let s = new Set([1,2,3]);
console.log(s.has(1));
console.log(s.has('1'));
clear():清空
let s = new Set([1,2,3]);
s.clear;
console.log(s);
Set 的实际运用(待更新)