当前位置: 代码迷 >> JavaScript >> js学习(二)Array的各种用法
  详细解决方案

js学习(二)Array的各种用法

热度:120   发布时间:2013-04-09 16:45:09.0
js学习(2)Array的各种用法

Array是JavaScript中的一个事先定义好的对象(也可以称作一个类),可以直接使用。
创建Array对象:
 var array = new Array();
创建指定元素个数的Array对象: var array = new Array(20);
创建具有指定元素的Array对象:
 var array = new Array('张三','李四','王五','赵六');


输出Array对象中的所有元素的值,还记得for...in吗
  var array = new Array('张三', '李四', '王五', '赵六');
        foreach (var index in array) {
            alert(array[index]);
        }

为已有Array对象增加元素
 array[4] = '田七';
查看最后输出结果
 array[6] = '王八';
查看输出结果
结论:
 无论Array对象事先是否定义好了大小,都可以为其添加元素,这有点向c#中数组和ArrayList的综合(为什么这么说)
 如果未按索引顺序添加元素,中间元素将会以undefined填充
替换原有元素
 array[2] = '田七';
 直接指定要替换的Array元素的索引,直接赋值即可替换

Array对象声明的另外一种方式,不使用new关键字,而是直接使用[]将元素的值包括起来,这和使用new关键字的效果一样
 var array =['张三', '李四', '王五', '赵六'];
将Array中的所有元素组成一个字符串 
toString()方法:将所有元素以","号连接起来,组成一个字符串。
 var array = ['张三', '李四', '王五', '赵六'];
    alert(array.toString()); 

Join用法

如果想以自定义的符号作为Array对象中元素的分隔符,可以使用join
以"-"分割
 var array = ['张三', '李四', '王五', '赵六'];
    alert(array.join('-'));
以"/"分割
  var array = ['张三', '李四', '王五', '赵六'];
     alert(array.join('/'));

split用法

将字符串转换成Array对象(数组)
很熟悉的方法
     var str = '张三,李四,王五,赵六';
        var array=str.split(',');
        alert(array.toString());
上面的例子如果使用空格分割呢?
下面的语句使用空格分割呢?有神马用处? var str = '张三李四王五赵六';
     var array=str.split('');
     alert(array.toString()); 
concat用法

concat():在数组的末尾添加元素,并返回一个新的数组,原数组不变。
     var array = new Array('张三,李四,王五,赵六');
        var array1= array.concat('田七', '王八');
        alert(array.toString());
        alert(array1.toString());
 注意:和前边直接向数组中添加元素的区别:前者操作的数组本身,而后者是返回一个新的数组,元数组不变
slice用法

slice():从数组中截取指定的元素,并返回新数组,原数组不变
截取从第2元素开始到最后一个元素结束
var array = new Array('张三','李四','王五','赵六');
var array1 = array.slice(1);
 alert(array1.toString());
push用法

push():在Array结尾添加一项或多个项
  var array = new Array('张三', '李四', '王五', '赵六');
        array.push('田七');
        array.push('王八','老九','老十');
        alert(array.toString());
这个前面添加元素的方法效果是一样的

pop用法

pop:删除数组最后一项,并将其作为返回值返回
     var array = new Array('张三', '李四', '王五', '赵六');
        var lastvalue = array.pop();
        alert(lastvalue);
        alert(array.toString());
 注:删除的是最后一项
shift用法

shift:删除数组的第一项,并作为返回值返回
var array = new Array('张三', '李四', '王五', '赵六');
var firstvalue = array.shift();
alert(firstvalue);
alert(array.toString());
 注:删除的是第一项
unshift用法

unshift:把一个项放在数组的第一个位置,然后把余下的项向后推动一个位置。代码见下边。
unshift函数的参数也可以是多个,这样的话就会将第一个参数放在第一项位置,第二个参数放在第二项的位置,后面依次位移

reverse用法

reverse:颠倒数组的顺序
 var array = new Array('张三', '李四', '王五', '赵六');
        array.reverse();
        document.write(array.toString());
sort:排序
    var array = new Array( '李四','张三', '赵六','王五');
        array.sort();        document.write(array.toString());
**splice用法 这个方法很好用~

splice()方法:好用且简单
第二个参数为0时,不删除任何项
 var array = new Array('李四', '张三', '赵六', '王五');
    array.splice(1, 0);
    document.write(array.toString());
如果只有两个参数,则是用来删除数组中的元素,如果第二个参数为0则不删除,如不为0,则删除从第一个参数指定的下表开始删除指定个数的元素。
 第二个参数为1时,删除下标为第一个参数指定下标的元素
    var array = new Array('李四', '张三', '赵六', '王五');       
        array.splice(1, 1);
     document.write(array.toString());
第二个参数为2时,删除下标为第一个参数指定下标和第一个参数下标+1的下标的元素,以下以此类推
     var array = new Array('李四', '张三', '赵六', '王五');
        array.splice(1,2);
        document.write(array.toString());
第二个参数为0时,在下标为1的位置新增一项,原来下标为1的元素后移
 var array = new Array('李四', '张三', '赵六', '王五');       
    array.splice(1,0,'新添加项');
    document.write(array.toString());

第二个参数为1时,在下标为1的位置新增一项,原来下标为1的元素删除
 var array = new Array('李四', '张三', '赵六', '王五');
    array.splice(1, 1, '新添加项');
    document.write(array.toString());

第二个参数为2时,在下标为1的位置新增一项,原来下标为1和下标为1+1的元素删除,以下以此类推
 var array = new Array('李四', '张三', '赵六', '王五');
    array.splice(1, 2, '新添加项');
    document.write(array.toString());
删除2项,新增2项
 var array = new Array('李四', '张三', '赵六', '王五'); 
    array.splice(1,2,'第一项','第二项');
    document.write(array.toString());

  相关解决方案