数组中常用api 2

Array.toString()

将数组转换成字符串,以","分隔。
返回:新字符,不修改源数组

var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var str = arr.toString();
console.log(str); //5,8,true,zhangsan,123,lisi
console.log(arr);  //[5, 8, true, "zhangsan", 123, "lisi"]

2. Array.join()

将数组的每一个元素都转换成字符串,然后连接这些字符串,连接符默认"," 也可以更改为其他,

不修改源数组

var arr = [5, 8, true];
var str1 = arr.join()        
console.log(str1);          //"5,8,true"
console.log(arr);          //[5, 8, true]

var str = arr.join("");   //连接符为空
console.log(str);      //"58true"

var str3 = arr.join("-");   //连接符为-
console.log(str3);      //"5-8-true"

3. Array.concat()

依次将内容添加到数组的尾部,并返回新数组,不修改源数组

var arr = [5, 8, true];
var arr2 = arr.concat('ok', 123);

console.log(arr);   // [5, 8, true]
console.log(arr2);  //[5, 8, true,'ok', 123]

4. Array.slice()

截取并返回数组的一部分,从start到end(不包括end)。如果是负数则从后往前数(截取顺序不变)

start:
 开始数组的小标,-1指最后一个元素,-2值倒数第二个元素
end:
 结束处的数组小标(不包括end本身);如果是负数,则从尾部算起(不包括本身)

返回值:
 新数组,不修改原数组

var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr3 = arr.slice(1);  //从arr[1]]到结尾
console.log(arr3);         //[8, true,'zhangsan', 123, 'lisi'];
console.log(arr);          //[5, 8, true,'zhangsan', 123, 'lisi'];
----------------------

var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr3 = arr.slice(1,4);  //从arr[1]- arr[4](不包括arr[4])
console.log(arr3);         //[8, true,'zhangsan']
console.log(arr);          //[5, 8, true,'zhangsan', 123, 'lisi'];
----------------------


var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr2 = arr.slice(-3,4);  //从倒数第三个 - arr[4](不包括arr[4])
console.log(arr2);         //['zhangsan']
----------------------

var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr2 = arr.slice(1,-1);    //从1到--倒数第一个(不包括本身) 
console.log(arr2);            //[8, true,'zhangsan', 123];
----------------------

var arr = [5, 8, true,'zhangsan', 123, 'lisi'];
var arr2 = arr.slice(-2,-1);   //倒数第2个 --倒数第一个(不包括本身)
console.log(arr2);            //[123];

5. Array.splice()

 修改源数组

语法:

 array.splice(start[, deleteCount[, item1[, item2[, …]]]])

返回值:
 被删除元素数组

a. 传递一个参数的时候:

  表示从这个参数的位置开始一直截取到最后

    var arr = [2,4,6,7,8,9]; 
      //[2,4,6,7,8,9]
    console.log(arr);         

    //参数为2表示从索引下标为2的位置开始一直截取到数组的最后;
    var n = arr.splice(2);   

    //[6,7,8,9]  -splice()返回的是截取到的数组
    console.log(n);     

    //[2,4] -原来的数组结构发生改变,为splice截取之后剩下的数组                
    console.log(arr);              

b. 传递两个参数时:

  传递两个参数,第一个参数表示开始的位置,第二个参数表示要截取的个数;
  如果第二个参数为0,则表示不截取,返回的空数组,原来的数组不变

    var arr = [2,4,6,7,8,9]; 
    console.log(arr);//[2,4,6,7,8,9]
    var n = arr.splice(2,3); //表示从下标位置为2开始截取3个数
    console.log(n); //[6, 7, 8]
    console.log(arr);//[2,4,9]

-----------
    var arr = [2,4,6,7,8,9]; 
    var n = arr.splice(2,0); //表示从下标位置为2开始截取3个数
    console.log(n); //返回空数组[]
    console.log(arr);  //源数组不变[2,4,6,7,8,9]

c. 传递三个数组的时候

    1. 当第二个参数不为0的时候

        var arr = [2,4,6,7,8,9];

        //[2,4,6,7,8,9] 
        console.log(arr); 

        //表示从下标为2的位置开始,删除3个项,在下标为2的位置添加一个数字为5的新项
        var n = arr.splice(2,3,5); 
        
        console.log(n); //[ 6, 7, 8 ]
        console.log(arr); //[2, 4, 5, 9]

    2. 当第一个参数为0的时候
        var arr = [2,4,6,7,8,9]; 

        //[2,4,6,7,8,9]
        console.log(arr); 
        
        //表示在下标为2的位置,截取0个数组,在下标为2的位置添加一个新项
        var n = arr.splice(2,0,5); 

        //不截取,返回空数组[]
        console.log(n);

        //[2, 4, 5, 6, 7, 8, 9]   
        //6这个位置无5的情况下会被删除,因为插入5是在他之前
        console.log(arr);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值