扩展运算符
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 的实际运用(待更新)
转自:(2条消息) JavaScript基础-数组(进阶)_js [...arr]_世阿弥的博客-CSDN博客
标签:arr,Set,console,进阶,JavaScript,add,let,数组,log From: https://www.cnblogs.com/wwssgg/p/17577433.html