js数组

Posted

tags:

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

shift unshift pop push splic delete


 

shift和unshift是数组第一个元素

shift:

 var array=[1,2,3,4]
    var ret=array.shift();
    console.info(array);  //技术分享图片Array(3) [ 2, 3, 4 ]
    console.info(ret);//1 返回第一个元素,即删除的元素

unshift:

  var array=[1,2,3,4]
    var ret =array.unshift("a");
    console.info(array);//技术分享图片Array(5) [ "a", 1, 2, 3, 4 ]
    console.info(ret);//5 返回数组长度

 

pop和push遵循栈先进后出,是数组最后一个元素

pop删除最后元素

var a = [1,2,3,4,5];

var b = a.pop(); //a:[1,2,3,4] b:5

push在数组最后面加

var a = [1,2,3,4,5];

var b = a.push(6,7); //a:[1,2,3,4,5,6,7] b:7

splice(起始索引,从包括起始索引删除的数量,在删除的位置新增的元素,在删除)

 var array=[1,2,3,4]
    var ret =array.splice(0,1,2,3);删原数组元素1,新增加2,3,
    console.info(array); //Array(5) [ 2, 3, 2, 3, 4 ]  
array.splice(0,1)=shift()
array.splice(0,0,元素1,元素2....)=unshift(元素1,元素2...)

splice删除数组连同索引一起删除,而delete删除,还保留原索引


delete

 

    var array=[1,2,3,4]
    var ret =delete array[0];
    console.info(array); //  
技术分享图片
Array(4) [ <1 empty slot>, 2, 3, 4 ]  empty slot空,值为空,但索引还在
console.log(array[0]); //undefined
//遍历delete会跳过undefinded值
for
(i in test) { console.log(test[i]) }

不仅可以删除数组,还可以删除对象的属性

 var obj={"age":12,"name":"张三"};
     console.log(obj.age); //12
    delete obj.age;  
    console.log(obj.age);//undefined
    console.log(obj);//name: "张三" ,属性彻底删除了,不存在什么索引还在

 

但不能删除变量:

var name = lily;
delete name;
console.log(name); //lily

原型链也删除不了

obj.prototype.age = 18;
delete obj.age;
console.log(obj.age) //18

 

remove: dom文档删除dom节点

从下拉列表删除选项。
<html> <head> <script type="text/javascript"> function removeOption() { var x=document.getElementById("mySelect") x.remove(x.selectedIndex) } </script> </head> <body> <form> <select id="mySelect"> <option>Apple</option> <option>Pear</option> <option>Banana</option> <option>Orange</option> </select> <input type="button" onclick="removeOption()" value="Remove option"> </form> </body> </html>

 

 



String.split() 执行的操作与 Array.join 执行的操作是相反的。

split()把一个字符串分割成字符串数组

如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

"2:3:4:5".split(":")	//将返回["2", "3", "4", "5"]
"|a|b|c".split("|")	//将返回["", "a", "b", "c"]
   var a="a.a.a.s.d";
 var b=  a.split(".");//js不需要转义,java需要
 console.log(a);//a.a.a.s.d
   console.log(b);//技术分享图片Array(5) [ "a", "a", "a", "s", "d" ]

 

join()是一个数组转字符串

var arr = [ "a", "b", "c", "d", "e" ];

arr.join();  得到 a,b,c,d,e//参数不写,默认是,
arr.join("-"); 得到 a-b-c-d-e

 

java与js的split方法的结果: 
使用java中的split()里面的参数为正则表达式,但是对“,”也支持,。对|或者$均需使用\进行转义。js不存在该问题。 

java :split(".");需要转义 

 

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

几个关于js数组方法reduce的经典片段

JS常用代码片段-127个常用罗列-值得收藏

web代码片段

javascript js数组找到片段

JavaScript笔试题(js高级代码片段)

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