数组操作

Posted 喵小娇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组操作相关的知识,希望对你有一定的参考价值。

一、push从尾部添加

1       var arr1=[1,2,3,4,5,6];
2       arr1.push(7);
3       alert(arr1)  //1,2,3,4,5,6,7

二、pop从尾部删除

1       var arr2=[1,2,3,4,5,6];
2       arr2.pop();
3       alert(arr2)  //1,2,3,4,5

三、shift从头部删除

1        var arr3=[1,2,3,4,5,6];
2        arr3.shift()
3        alert(arr3);  //2,3,4,5,6

四、unshift从头部添加

1         var arr4=[1,2,3,4,5,6];
2         arr4.unshift(‘a‘);
3         alert(arr4);  //a,1,2,3,4,5,6

五、splice(开始位置,删除个数,添加值1,添加值2,......)

删除

1         var arr5=[1,2,3,4,5,6];
2         arr5.splice(1,2);
3         alert(arr5);  //1,4,5,6

插入

1         var arr6=[1,2,3,4,5,6];
2         arr6.splice(1,0,‘a‘,‘b‘);
3         alert(arr6);  //1,a,b,2,3,4,5,6

替换

1         var arr7=[1,2,3,4,5,6];
2         arr7.splice(1,2,‘a‘,‘b‘,‘c‘);
3         alert(arr7);  //1,a,b,c,4,5,6

六、join & split

join:将arr转换成string格式

1         var arr8=[1,2,3];
2         alert(arr8.join(‘-‘));  //1-2-3(string)

split:将string转换成arr格式

1         var str1=‘1-2-3-4‘;
2         alert(str1.split(‘-‘));  //1,2,3,4(arr)

七、slice(开始位置,结束位置+1):取子数组

1         var arr9=[1,2,3,4,5,6];
2         alert(arr9.slice(1,3));  //2,3

八、sort:排序

瑕疵版本:

1         var arr10=[2,3,1,5,8,20]
2         alert(arr10.sort())  //1,2,20,3,5,8
 

原理版本:

1         alert(arr10.sort(function (num1,num2) {
2             if(num1<num2){
3                 return -1;
4             }else if(num1>num2){
5                 return 1;
6             }else {
7                 return 0;
8             }
9         }));  //1,2,3,5,8,20

简洁版本:

1         alert(arr10.sort(function (num1,num2) {
2             return num1-num2;
3         }));  //1,2,3,5,8,20

拼音排序:

1         var arr11=[‘小二‘,‘张三‘,‘李四‘,‘王五‘,‘阿六‘];
2         alert(arr11.sort(function (str1,str2) {
3             return str1.localeCompare(str2);
4         }))  //阿六,李四,王五,小二,张三

九、reverse:反转数组

1         var arr12=[1,2,3,4,5,6];
2         alert(arr12.reverse());  //6,5,4,3,2,1

十、concat:

数组连接

1         var arr13=[1,2,3,4,5,6];
2         var arr14=[8,9];
3         alert(arr13.concat(arr14));  //1,2,3,4,5,6,8,9
数组复制
 1        //arr14的值不会改变
 2         var arr14=[1,2,3]
 3         var arr15=arr14.concat([]);   //先将arr14复制了一份,再进行操作
 4         arr15.push(4)                       
 5         alert(arr14);  //1,2,3
 6 
 7 
 8        //arr16的值会改变
 9         var arr16=[1,2,3]
10         var arr17=arr16
11         arr17.push(4)                       
12         alert(arr16);  //1,2,3,4

 

十一、数组去重实例

 1     <script>
 2         function hasContain(arr,num) {
 3             for(var i=0;i<arr.length;i++){
 4                 if(arr[i]==num){
 5                     return true;
 6                 }
 7             }
 8             return false;
 9         }
10 
11         var arr=[1,2,3,4,5,2,3,8,4];
12         var newArr=[];
13 
14         for(var i=0;i<arr.length;i++){
15             if(!hasContain(newArr,arr[i])){
16                 newArr.push(arr[i])
17             }
18         }
19         alert(newArr);  //1,2,3,4,5,8
20     </script>

 

以上是关于数组操作的主要内容,如果未能解决你的问题,请参考以下文章

web代码片段

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

javascript常用代码片段

VSCode自定义代码片段——git命令操作一个完整流程

为什么我不能在此片段中生成唯一对象数组?

VSCode自定义代码片段15——git命令操作一个完整流程