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 个地位 )
后续会持续补充。。。。