1. slice 返回数组片段
var a = ['a','b','c','d','e','f','g'];
alert(a.slice(1,2)); // -> b
alert(a.slice(2)); // -> c,d,e,f,g
alert(a.slice(-4)); // -> d,e,f,g
alert(a.slice(-2,-6)); // -> 空
a.slice(1,2),从下标为1开始,到下标为2之间的数,注意并不包括下标为2的元素
如果只有一个参数,则默认到数组最后
-4是表示倒数第4个元素,所以返回倒数的四个元素
最后一行,从倒数第2开始,因为是往后截取,所以显然取不到前面的元素,所以返回空数组,如果改成 a.slice(-6,-2) 则返回b,c,d,e
2. splice 从数组删除某片段的元素,并返回删除的元素
var a = [1,2,3,4,5,6,7,8,9];
document.write(a.splice(3,2)); // -> 4,5
document.write(a); // -> 1,2,3,6,7,8,9
document.write(a.splice(4)); // -> 7,8,9 注:IE下返回空
document.write(a); // -> 1,2,3,6
document.write(a.splice(0,1)); // -> 1
document.write(a); // -> 2,3,6
document.write(a.splice(1,1,["aa","bb","cc"])); // -> 3
document.write(a); // -> 2,aa,bb,cc,6
document.write(a.splice(1,2,"ee").join("#")); // -> aa#bb
document.write(a); // -> 2,ee,cc,6
document.write(a.splice(1,2,"cc","aa","tt").join("#")); // -> ee#cc
document.write(a); // -> 2,cc,aa,tt,6
3. sort 数组排序
- 对数字
var arr=[12,78, 335, 21, 2];
//arr.sort(); //默认的情况下,他会把所有的东西都当做字符串处理
arr.sort(function (num1, num2){
return num1-num2;
});
alert(arr);
- 对中文
var arr=['张三', '石川', '刘伟', '莫涛', '杜鹏', '阿杜', '毕加索'];
arr.sort(function (str1, str2){
return str1.localeCompare(str2);
});
//只要能用原生方法的时候,就不要自己写
alert(arr);
4. 数组去重
function hasContain(arr, num)
{
var i=0;
for(i=0;i<arr.length;i++)
{
if(arr[i]==num)
{
return true;
}
}
return false;
}
var arr=[1,2,3,4,1,5,6,4,8];
var aResult=[];
var i=0;
for(i=0;i<arr.length;i++)
{
if(!hasContain(aResult, arr[i]))
{
aResult.push(arr[i]);
}
}
alert(aResult);
5. 数组复制
var arr1=[1,2,3];
var arr2=arr1.concat([]);
arr2.push(4);
alert(arr1);