1、JavaScript不借助第三个变量实现替换a,b变量值

1.ES6构造赋值语法,容许咱们提取数组和对象的值,对变量进行赋值

[a,b] = [b,a];

2.间接替换a和b的变量值

a = [b,b=a][0];

3.先把a变成一个(对象,数组),最初赋值

a = {a:b,b:a};b = a.b;a = a.a;
a = [a,b];b = a[0];a = a[1];

4.让a先变成a与b的‘和’(也能够换成a和b的差)
‘和’减去b奇妙的失去了a的变量值赋予b
再通过‘和’减去a的值得到了b的值赋予a

a = a + b;b = a - b;a = a - b;
a = a - b;b = a + b;a = b - a;

5.通过底层位运算来进行替换变量值

a ^= b;b ^= a;a ^= b;
2. 数组去重

1.ES6办法:

Array.from(new Set([1,2,3,4,5,4,3,2]))    [...new Set([1,2,3,4,5,4,3,2])]     //[1, 2, 3, 4, 5]

2.另一种办法

//定义数组    var a=[1,2,3,4,2,3,8];    function show(array){      var num=[];  //定义空数组      for(var i=0;i<array.length;i++){        //用indexOf返回某个字符串在另一个字符串中首次呈现的地位,        if(num.indexOf(array[i])==-1){          //如果没有找到,返回-1,向空数开端增加          num.push(array[i]);        }      }      return num;//最初返回新数组    }
3.数组降维:flat()

flat()能够将一个多维数组的深度转成一维(扁平化或称作降维),它有一个选填的参数,代表要转换的深度数字,预设为1(只开展一层放到一维数组里,如果是2,只开展2层放到一维数组里),如果深度有很多层,可应用Infinity来全副开展成一维数组。

let a = [1,2,[3],[4,[5,[6]]]];let b = a.flat();let c = a.flat(2);let d = a.flat(Infinity);console.log(b); // [1, 2, 3, 4, [5, [6]]]console.log(c); // [1, 2, 3, 4, 5, [6]]console.log(d); // [1, 2, 3, 4, 5, 6]
4.删除数组最初一个元素

pop()

pop()会移除数组的最初一个元素。

let a = [1,2,3,4,5,6,7,8];a.pop();console.log(a); // [1, 2, 3, 4, 5, 6, 7]
5.增加,删除数组固定地位元素

splice()

splice()能够移除或新增数列的元素,它蕴含了三个参数,第一个是要移除或要增加的序列号( 必填),第二个是要移除的长度( 选填,若不填则从第一个参数序号地位开始,前方的所有元素都会被移除,若设定为0则不会有元素被移除),第三个是要替换的内容( 选填 )

let a = [1,2,3,4,5,6,7,8];a.splice(5,1);console.log(a);// [1, 2, 3, 4, 5, 7, 8] ( 6 被移除了 )

增加第三个参数就可能增加或替换元素。

let a = [1,2,3,4,5,6,7,8];a.splice(5,1,100);console.log(a);// [1, 2, 3, 4, 5, 100, 7, 8] ( 6 被移除,100加到第5个地位 )let b = [1,2,3,4,5,6,7,8];b.splice(5,3,100,200,300);console.log(b);// [1, 2, 3, 4, 5, 100, 200, 300] ( 6,7,8 被移除,100,200,300 加到第 5,6,7 个地位 )let c = [1,2,3,4,5,6,7,8];c.splice(5,0,100);console.log(c);// [1, 2, 3, 4, 5, 100, 6, 7, 8] ( 沒有元素被移除,100 加到第 5 个地位 )

后续会持续补充。。。。