JS数组&两值交换不使用第三变量

```var a = [1,2,3,4,5];
var b = a.shift();
//结果：a为[2,3,4,5]	b为1
var a = [1,2,3,4,5];
var b = a.splice(0,1);
//结果：a为[2,3,4,5]	b为[1]```

```var a = [1,2,3,4,5];
var b = a.unshift(-2,-1);
//结果：a为[-2,-1,1,2,3,4,5]	b为7
var a = [1,2,3,4,5];
a.splice(0,0,-2,-1);
var b = a.length;
//结果：a为[-2,-1,1,2,3,4,5]	b为7```

```var a = [1,2,3,4,5];
var b = a.pop();
//结果：a为[1,2,3,4]		b为5
var a = [1,2,3,4,5];
var b = a.splice(a.length-1,1);
//结果：a为[1,2,3,4]		b为[5]```

```var a = [1,2,3,4,5];
var b = a.push(6,7);
//结果：a为[1,2,3,4,5,6,7]	b为7
var a = [1,2,3,4,5];
a.splice(a.length,0,6,7);
var b = a.length;
//结果：a为[1,2,3,4,5,6,7]	b为7```

```var a = [1,2,3,4,5];
var b = a.concat(6,7);
//结果：a为[1,2,3,4,5]	b为[1,2,3,4,5,6,7]
var a = [1,2,3,4,5];
var b = a; //指向同一个地址
b.splice(b.length,2,6,7);
//结果：a为[[1,2,3,4,5,6,7]	b为[1,2,3,4,5,6,7]
//PS：实验五contact可以完全使用slice代替。<strong>注意上述实验五的区别，b=a表示a和b指向同一个地址</strong>```

7. arrayObject.slice(start,end)：从已有的数组中返回选定的元素。返回一个新的数组，包含从 start 到 end （不包括该元素）的 arrayObject 中的元素。 数组复制方法一：

```var array1 = new Array("1","2","3");
var array2;
array2 = array1.concat();
array1.length = 0;

```var array1 = new Array("1","2","3");
var array2;
array2 = array1.slice(0);
array1.length = 0;

```var ary = [1,2,3,4];
ary.splice(0,ary.length);
console.log(ary); // 输出 []，空数组，即被清空了```

```var ary = [1,2,3,4];
ary.length = 0;
console.log(ary); // 输出 []，空数组，即被清空了```

```var ary = [1,2,3,4]; 【效率最高，推荐使用】
ary = []; // 赋值为一个空数组以达到清空原数组```

9. 不使用第三变量交换值：

```var a=2,b=3;
a=[b, b=a][0]; //地址指向，必须为对象```

```var a=2,b=3;
a=b-a;
b=b-a;
a=b+a;```

```var a=2,b=3;
a=a^b;
b=a^b;
a=a^b;```

```var a = 2, b = 3;
[a, b] = [b, a];```

10. 求数组中最大最小值

```var arr = [1,2,3]
console.log(Math.max.apply(Math,arr)); //3
console.log(Math.min.apply(Math,arr)); //1```

11. reverse：将数组反序

```var a = [1,2,3,4,5];
var b = a.reverse(); //a：[5,4,3,2,1] b：[5,4,3,2,1]```

12. join(separator)：将数组的元素组起一个字符串，以separator为分隔符，省略的话则用默认用逗号为分隔符

```var a = [1,2,3,4,5];
var b = a.join("|"); //a：[1,2,3,4,5] b："1|2|3|4|5"```

13. js排序 sort(orderfunction)：按指定的参数对数组进行排序

```var a = [1,2,3,4,5];
var b = a.sort(); //a：[1,2,3,4,5] b：[1,2,3,4,5]```

14. 数组是JavaScript提供的一个内部对象，它是一个标准的集合，我们可以添加(push)、删除(shift)里面元素，我们还可以通过for循环遍历里面的元素；由于JavaScript的语言特性，我们可以向通用对象动态添加和删除属性。

Array: 新建:var ary = new Array(); 或 var ary = []; 增加:ary.push(value); 删除:delete ary[n]; 遍历:for ( var i=0 ; i < ary.length ; ++i ) ary[i]; Object: 新建:var obj = new Object(); 或 var obj = {}; 增加:obj[key] = value; (key为string) 删除:delete obj[key]; 遍历:for ( var key in obj ) obj[key]; 代码：

```var keyword = '';
for (var i=0; i<ary.length ; ++i ){
if ( ary[i] == keyword ){
// todo
}
}```

```var key = '';
var value = obj[key];
// todo```

0 条评论

• JavaScript语言精粹【数组、正则表达、JSON、JSLint】

版权声明：本文为博主原创文章，遵循 CC 4.0 by-sa 版权协议，转载请附上原文出处链接和本声明。

• 表单脚本

刚开始人们使用JavaScript，最主要的目的之一就是表单的验证，分担服务器处理表单的责任。虽然现流行的大部分提交方式是通过ajax，但了解表单，对于ajax...

• 科技将带给我们什么变化？讲述基于 HTML5 WebGL 的 3D 科幻风机

许多世纪以来，风力机同水力机械一样，作为动力源替代人力、畜力，对生产力的发展发挥过重要作用。近代机电动力的广泛应用以及二十世纪50年代中东油田的发现，使风机发电...

• tensorsor快速获取所有变量，和快速计算L2范数

可以指定要的变量，计算L2范数。 for var in tf.trainable_variables(): print (var.nam...

• 字节跳动前端实习面经

viewport 是用户网页的可视区域。 手机浏览器是把页面放在一个虚拟的"窗口"（viewport）中，通常这个虚拟的"窗口"（viewport）比屏幕宽，...

• JDK10的新特性:本地变量类型var

java以面向对象的特性显著于世并得到了蓬勃的发展。在语言的发展过程中，为了让java语言更加简洁和方便使用，JDK也在不断的进行改进。

• 批量导出某个简书用户的所有文章列表和文章超链接

虽然简书提供了批量下载文章的功能，但是下载到本地的文章都是markdown格式的，不包含文章的链接，这不满足我的需求。

• JS知识总结

var cars=new Array("Saab","Volvo","BMW"):

• java10系列(二)Local-Variable Type Inference

本文主要解读下java10的Local-Variable Type Inference