接上一篇Javascript学习笔记之--强大的数组操作(一)
前面说的unshift(),此函数在ie10以下的浏览器里面返回值存在兼容性问题,返回“undefined”。
下面我想总结以下我最喜欢的数组操作-----排序!
记得刚学c++的时候,各种排序方法的题目最头疼了,js学到这里的时候我豁然开朗,这就是喜欢的原因!
1 reverse()
reverse()倒序排序:
var test = [1,2,3,4];
alert(test.reverse()); //倒序输出
2 sort()
sort()的一般用法,将文字按照A-Z的顺序排序,支持中文排序!
sort()可以添加一个参数比如:sort(sortby)
sortby可选参数,规定排序顺序,必须是函数。下面是用法:
var Chinese = ["苹果","安卓","诺基亚"];
var English = ["android","nokia","apple"];
alert(Chinese.sort());
alert(English.sort());
下面是sort()带参数的用法,我就直接使用w3cshchool的了
function sortNumber(a,b)
{
return a - b
}
var test = [100,50,80,9];
alert(test.sort(sortNumber));//得出结果是9,50,80,100
3 concat()
作用是复制出一个新数组,或者连接两个新数组,原数组的值不发生变化。
4 slice()
作用是数组元素的截取,详细的说就是从原数组里面提取出指定下标之间的元素,请看看demo:
var test = [100,50,80,9];
alert(test.slice(1));//输出50,80,9
alert(test.slice(1,3));//输出50,80
5 splice()
splice()的功能比较多,可以实现删除,插入和替换功能。
用法是splice(起始位置,插入元素的个数[,插入的元素])
var test1=[100,50,80,9];
var test2=box.splice(1,2);//作用是取第一个位置开始,后面的2个元素,进行删除
alert(test1);//输出100,9
alert(test2);//输出返回值(删除掉的元素)
当第二个参数为0的时候就可以实现插入功能
var test1=[100,50,80,9];
box.splice(1,0,70,80);//作用是在第一个位置插入70和80两个元素
alert(test1);//输出100,70,80,50,80,9
修改上面的demo,当第二个参数为非0时,例如第二个参数为2,就可以实现先删除两个元素,再插入相应的元素。这就是替换功能,先删除后插入。
var test1=[100,50,80,9];
box.splice(1,2,70,80);//作用是在第一个删除后面的两个元素,然后插入70和80两个元素
alert(test1);//输出100,70,80,9