javascript笔记整理(数组对象)

1、属性

a.length--设置或返回数组元素的数目

var a=[1,2,3,45,5];
alert(a.length=6)    结果:6
alert(a[5])        结果:undefined

b.constructor--返回构造函数的引用

var test=new Array();
alert(test.constructor==Array);    true

2、方法

a.删除或添加类

1.push()--向数组的末尾添加一个或更多元素,并返回新的长度

var a=[1,2,3,4,5];
alert(a.push('a','b'));        结果:7
alert(a);                      结果:1,2,3,4,5,a,

 2.unshift()--向数组的开头添加一个或更多元素,并返回新的长度

var a=[1,2,3,4,5];    
alert(a.unshift('a','b'));    结果:7
alert(a);                     结果:a,b,1,2,3,4,5

3.pop()--删除数组的最后一个元素,返回删除的元素

var a=[1,2,3,4,5];
alert(a.pop());            结果:5
alert(a);                  结果:1,2,3,4

 4.shift()--删除数组的第一个元素,返回删除的元素

var a=[1,2,3,4,5];
alert(a.pop());            结果:1
alert(a);                  结果:2,3,4,5

 5.splice(index,num,item1,.....itemX)--删除元素,并向数组添加新元素

  index    必需。从何处开始添加或删除,必须是数值类型(数组的下标)
  num    必需。规定了删除的个数,如果是0,则不删除
  item    可选。需要添加的元素,可以当作替换的元素

  如果有删除的元素,返回删除的元素;如果没有删除的元素,返回为空,添加的元素在index值前面

var a=[1,2,3,4,5];
alert(a.splice(0,1,'a','b'));    结果:1
alert(a);                        结果:a,b,2,3,4,5

 b.数组的转换

 join(separator)--将数组分割成字符串

  separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符,返回结果就是组合成的字符串

var a=[1,2,3,4,5];
alert(a.join('-'));    结果:1-2-3-4-5

 c.数组的分割

 slice(start,end)--从某个已有的数组返回选定的元素

  start:必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

  end:可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

var a=[1,2,3,4,5];
alert(a.slice(1,4));      结果:2,3,4
alert(a.slice(-4,-1));    结果:2,3,4
alert(a.slice(-2));       结果:4,5

 不包括,end值的元素

d.排序(冒泡排序)

sort(sortby)    对数组的元素进行排序

  sortby:可选。规定排序顺序。必须是函数。如果没有参数,则按照字母的编码进行排序.

sortby会提供两个参数(a,b)
a<b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值
a=b,则返回 0。
a>b,则返回一个大于 0 的值

var a=[1,2,3,22,5];
alert(a.sort());                             结果:1,2,22,3,5
alert(a.sort(function(a,b){return b-a}));    结果:22,5,3,2,1
alert(a.sort(function(a,b){return a-b}));    结果:1,2,3,5,22

f.数组的连接

concat()--连接两个或更多的数组,并返回结果,对原数组没有任何影响

var a=[1,2,3,22,5];
var b=['a','b','c'];
alert(a.concat(b));    结果:1,2,3,22,5,a,b,c

代码实践:

----------------冒泡排序--------------
var a=[34,13,8,22,5];
function arrsort(){
    for(var i=0;i<=this.length;i++){
        for(var j=0;j<=this.length-1;j++){
            var aa=this[j];
            if(this[j]<this[j+1]){
                this[j]=this[j+1];
                this[j+1]=aa;
            }
        }
    }
    return this;
}
Array.prototype.arrSort=arrsort;
alert(a.arrSort());

结果:34,22,13,8,5
-----------------删除数组的重复元素--------------
var a=[34,13,22,22,5,'aa','aa'];
function arrsort(){
    for(var i=0;i<=this.length;i++){
        for(var j=0;j<=this.length-1;j++){
            if(this[j]===this[j+1]){
                this.splice(j,1);
            }
        }
    }
    return this;
}
Array.prototype.arrSort=arrsort;
alert(a.arrSort());    

结果:34,13,22,5,aa
原文地址:https://www.cnblogs.com/chenrf/p/5177643.html