JavaScript 数组操作

本文详细介绍了JavaScript中数组的各种操作方法,包括splice用于增删元素、substring和slice进行字符串截取、sort实现排序等功能。通过具体实例展示了不同方法的使用场景及特点。

splice

从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

arrayObj.splice(start, deleteCount, [item1[, item2[, . . . [,itemN]]]])

参数

arrayObj

必选项。一个 Array 对象。

start

必选项。指定从数组中移除元素的开始位置,这个位置是从 0 开始计算的。

deleteCount

必选项。要移除的元素的个数。

item1, item2,. . .,itemN

必选项。要在所移除元素的位置上插入的新元素。

 var lang = ["php","java","javascript"];
 //删除
 var removed = lang.splice(1,1);
 alert(lang);  //php,javascript
 alert(removed);  //java ,返回删除的项
 
 //插入
        var insert = lang.splice(0,0,"asp"); //从第0个位置开始插入
 alert(insert); //返回空数组
 alert(lang);  //asp,php,javascript
 
 //替换
        var replace = lang.splice(1,1,"c#","ruby"); //删除一项,插入两项
 alert(lang); //asp,c#,ruby
 alert(replace);  //php,返回删除的项

 substring,slice

<script language="javascript">  
var stmp = "rcinn.cn";  
//使用一个参数  
alert(stmp.slice(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"  
alert(stmp.substring(3));//从第4个字符开始,截取到最后个字符;返回"nn.cn"  
//使用两个参数  
alert(stmp.slice(1,5))//从第2个字符开始,到第5个字符;返回"cinn"  
alert(stmp.substring(1,5));//从第2个字符开始,到第5个字符;返回"cinn"  
//如果只用一个参数并且为0的话,那么返回整个参数  
alert(stmp.slice(0));//返回整个字符串  
alert(stmp.substring(0));//返回整个字符串  
//那如何只反回第一个字符呢,可以用其它的函数,那如果一定要用这两个方法的话就指定第一个参数为0,第二个参数为1,看下面的例子  
alert(stmp.slice(0,1));//返回"r"  
alert(stmp.substring(0,1));//返回"r"  
//在上面的例子中我们可以看出slice()和substring()的用法是相同的,返回的值也是一样的,但当参数为负数时,他们的返回值却不一样,看下面的例子  
alert(stmp.slice(2,-5));//返回"i"  
alert(stmp.substring(2,-5));//返回"rc"  
//从上面两个例子可以看出slice(2,-5)实际上是slice(2,3),负5转换成正3;而substring(2,-5)实际上是substring(2,0),负数转换为0,swubstring总是把最小的数作为起始位置。  
</script>  

 

数组排序

 $(function () {
            var arr = new Array(3, 4, 6, 2, 4, 8, 5, 1, 11, 22, 17, 42, 46, 41,-1,-22,-15,-100,'a','d','b','C','E','A','G');
            var arr1 = arr.concat();
            arr1.sort();
            alert(arr1);
            arr1.reverse();
            alert(arr1);
        });

 $(function () {
            var arr = new Array(2, 3, 'a', 'D', 'G', 8);
            var li = new Array("li", "lii", "hon", "hongda");
            //拷贝
            var arr1 = arr.concat();
            var arr2 = arr.slice(0);
            //添加
            $.each(li, function (i, item) {
                arr1.push(item);    //2, 3, 'a', 'D', 'G', 8,"li", "lii", "hon", "hongda"
                arr2.unshift(item); //"hongda",hon,lii,li,2, 3, 'a', 'D', 'G', 8
            });
            //删除
            $.each(li, function () {
                arr1.pop();
                arr2.shift();
            });
            //截取|合并
            var narr1 = arr1.slice(0, 3);
            alert(narr1);  //2,3,a
            var narr2 = arr2.concat(narr1);
            alert(narr2);  //2,3,a,D,G,8,2,3,a
        });

 push,pop,unshift,shift

push:对数组从尾部开始插入,是对原数组进行操作,如果插入参数是一个数组,那么就将该数组当做一个元素插入到原数组中。

pop:对数组从尾部开始删除,删除最后一个元素,并返回删除的元素,如果数组为空时,就返回undefined.

unshift:对数组从头部开始插入。

shift:对数组从头部开始删除,并返回删除的元素。

var arr=["hong","da","qi"];
var list=[1,2,3,4,5];
for(var i=0;i<arr.length;i++){
   list.push(arr[i]);
   console.log(list);
}
for(var i=0;i<arr.length;i++){
   console.log("delete:"+list.pop());
   console.log(list);
}

var arr=["hong","da","qi"];
var list=[1,2,3,4,5];
for(var i=0;i<arr.length;i++){
   list.unshift(arr[i]);
   console.log(list);
}
for(var i=0;i<arr.length;i++){
   console.log("delete:"+list.shift());
   console.log(list);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值