转载

与JavaScript恋爱之数组(四)

数组方法

1. join() ,数组转字符串,原数组没有被修改。

可选参数:一个字符串参数。数组的 join() 方法的实现:先把所有的单个元素都转成字符串,然后按照参数链接每单个元素,不传参数时,默认用 "," 链接每单个元素。

var arr=[1,2,3,4,5];
var str=arr.join();
str;//"1,2,3,4,5"
var str2=arr.join("-");
str2;//"1-2-3-4-5"
var arr2=str2.split("-"); //split()是字符串的方法
arr2;//[1,2,3,4,5]

2. reverse() ,数组倒序排序,数组被修改。

var arr=[5,4,3,2,1];
arr.reverse();
arr;//[1,2,3,4,5]

3. sort() ,排序方法,数组被修改。

可选参数:为一个比较函数,不传时,按字母表顺序排序(如有必要转化成字符串比较)。

var arr=[2,3,1,"a","A","b","B"];
arr.sort(); //不穿参数,按字母表顺序排序
arr;//[1,2,3,A,B,a,b]
arr.sort(function(a,b){ //小到大排序
   return a-b;
});
arr.sort(function(a,b){ //大到小排序
  return b-a;
});
var arr2=["But","add","Add","but"];
arr2.sort(function(a,b){
    var x=a.toLowerCase();
    var y=b.toLoweCase();
    if(x>y) return 1;
    if(x<y) return -1;
    return 0;
});
arr2;//["add","Add","But","but"]

4. concat() ,不会修改调用的数组,创建并返回一个新数组,包含调用数组的元素和参数,如果参数是是数组,链接的是数组元素而非数组本身。

var arr=[1,2,3];
arr.concat(4,5);//返回[1,2,3,4,5]
arr.concat(4,5);//返回[1,2,3,4,5]  之前的调用concat()并没有修改调用的数组
arr.concat(4,[5,6]); //返回[1,2,3,4,5,6] 参数是数组的,链接的元素而非本身
arr.concat(4,[5,[6]]);//返回[1,2,3,4,5,[6]]

5. slice() ,不会修改调用的数组,返回一个子数组,参数指定的是调用数组的索引,即开始和结束的位置,可以是 0 个、 1 个或 2 个,无参数时返回调用数组具有相同元素的另个数组,参数为 1 个时返回调用数组索引大于等于 1 的元素,索引为 2 个时返回第一个索引和最后一个索引之间的元素,包含第一个索引的元素,不包含最后一个索引的元素。

var arr=[1,2,3,4,5];
arr.slice();//返回另一个具有相同元素的数组[1,2,3,4,5]
arr.slice(1);//返回[2,3,4,5]
arr.slice(-1); //返回[5]  最后一个元素为-1,倒数第二个为-2,依次类推
arr.slice(1,-1);//返回[2,3,4] 包含第一个索引的元素,不包含第二个索引的元素

6. splice() ,返回一个被删除的元素组成的数组,会修改调用数组,第一个参数必须,可传入1以上的参数,第一个参数为要开始删除的索引,第二个参数为要删除几个,后面的参数为要插入的元素。

var arr=[1,2,3,4,5,6];
arr.splice(4);//返回[5,6], arr为[1,2,3,4]
arr.splice(1,1);//返回[2],arr为[1,3,4]
arr.splice(1,2,"a","b"); //返回[3,4],  arr为[1,a,b]
arr.splice(0,0,"A","B"); //返回[],arr为["A","B",1,a,b]

7、 pop()push() , shift()unshift()

var arr=[1,2,3];
arr.push(4);//返回arr的新长度4,push在末尾添加一个或多个元素
arr;//返回[1,2,3,4]
arr.pop();//没有参数,去掉数组最末尾的一个元素,返回被删除的元素
arr;//返回[1,2,3]
arr.unshift(0);//在数组最前面添加一个或多个元素,返回数组最新的长度
arr.shift();//删除数组第一个元素,返回被删除的元素

8、 toString()toLocaleString() ,

var arr=[1,2,"a",[["b"]]];
arr.toString();//"1,2,a,b"
//toString()和没有传参数的join()方法返回的是一样的字符串,toLocaleString()返回本地化字符串,很少用
原文  https://segmentfault.com/a/1190000007817235
正文到此结束
Loading...