JavaScript中的数组(join、concat、slice、splice、push、pop、unshift、shift方法)

数组

数组(Array)对象用于在单个的变量中存储多个值,数组是值得有序集合,数组的下标保存的是数组的顺序,数组的大小是可以动态调整的,即可以随着数据的添加自动增长,且数组中存放的值可以是多种数据类型,如:

    var scroe=100;//数组中是可以存放变量的
    var arr1=[1,null,"hello",true,undefined,{name:"张三"},[1,2,3],scroe]

创建数组对象有两种方法,一种通过字面量来创建数组对象,一种是通过new操作符字来创建数组对象。
字面量创建数组:

    var arr1 =  [];  //创建空数组
    var arr2 = [1,2,4,5,6];  //创建一个数组,元素有1,2,4,5,6

new操作符创建数组:

    var arr2=new Array(); //创建一个空数组
    var arr3=new Array(4); //创建一个长度为4的数组,数组是没有值的 empty × 4
    var arr4=new Array(4,5,3,3,2); //创建一个数组,值为[4,5,3,3,2]
  

读写数组操作
数组是一个有序的集合,元素保存的下标是从0开始的,可以通过下标获取对应位置的数组元素。
获取数组的值

   var arr1=[1,"hello","world","23",18];
    console.log(arr1[3]); //结果为:'23'  我们可以通过下标 (数字)得到数组的某个值
    console.log(arr1[1+1]); //结果为:'world'  下标中也可以书写表达式
    var a=2;
    console.log(arr1[a]) ; //结果为:'world'  下标中也可以书写变量

设置数组的值

    var arr1=[1,"hello","world","23",18];

    arr1[2]="haha"; //对数组的下标为2的数据改变了
    console.log(arr1);  // 结果为: [1,"hello","haha","23",18]

    console.log(arr1.length) //得到数组的长度,结果为:5
    arr1[5]="hehe";   
    console.log(arr1);  //结果为[1,"hello","haha","23",18,"hehe"]

    arr1[10]="heihei";//当没有设置的时候数组的某一位就是空的  empty
    console.log(arr1);//[1, "hello", "haha", "23", 18, "hehe", empty × 4, "heihei"]
    console.log(arr1[7])//空的数组的位置 获取的是undefined

    arr1.length=100;//仍然是生效的,但是是empty空,如果我们获取空的,返回一个undefined
数组的join方法

1.不改变原数组,返回新的字符串,也就是该方法用于将数组转换为字符串。
2.如果join中不写任何的参数,那么是把每一项转换成字符串,并把逗号也写在字符串中了

    var arr=[1,2,3,4,5,6];
    var str1=arr.join();
    console.log(arr);  // 结果为:[1,2,3,4,5,6]
    console.log(str1);  //结果为:1,2,3,4,5,6

3、join括号内的参数控制数组的逗号,最终转换成字符串的时候,参数是什么,数组的逗号便转换成什么。

    var arr=[1,2,3,4,5,6];
    var str1=arr.join("");
    console.log(arr); //结果为:[1,2,3,4,5,6]
    console.log(str1); //结果为:1 2 3 4 5 6

4、如果值是undefined,那么join就默认它是一个空字符串,如果是对象就转换为[object Object]

    var a=6;
    var arr=[undefined,2,true,4,"abc",a,{name:"lily"},[1,2,3]];
    var str1=arr.join("");
    console.log(arr); // 结果为:[undefined,2,true,4,"abc",a,{name:"lily"},[1,2,3]]
    console.log(str1); //结果为:2true4abc6[object Object]1,2,3
数组的concat方法

数组的concat方法用于连接两个或更多的数组,并返回结果,不会改变原数组,返回一个新的数组。

    var arr=[1,2,3,4,5];
    var newArr=arr.concat(1);//将concat的参数添加到了数组的末尾,并返回新的数组
    newArr=newArr.concat(1,2,3,4,5);//如果多个参数也能将数组的新值按照顺序一并添加到末尾
    newArr=newArr.concat(["hello","world",6,7]);//将两个数组合并
    newArr=newArr.concat(["hello","world",6,7],[8,9,10],[11,12,13]);//将多个数组合并
    newArr=newArr.concat(1,["hello","world",6,7],[8,9,10],[11,12,13]);//将多个值合并,如果碰到数组,则拆开合并进去
    newArr=newArr.concat(1,[1,2,[3,4,5]]);//如果是多维数组,那么内层的数组不会拆开
    console.log(arr);//不改变原数组
    console.log(newArr);
数组的slice方法

数组的slice方法用于从某个已有的数组返回选定的元素,arrayObject.slice(start,end),start用于获取数组的起始位置下标,包含该位置的元素,end获取数组的结束位置下标,不包含该位置的元素。该方法会修改原数组,返回的是一个新的数组。如果只写一个参数,则为start(开始位置下标),end没有规定,则为从起始位置获取后面的所有元素。

var arr=[1,2,3,4,5,6,7,8,9,10];
var newArr=arr.slice(3,8);
console.log(newArr); //结果为:[4,5,6,7,8]
var newArr=arr.slice(3); 
console.log(arr);  //结果为:[1,2,3,4,5,6,7,8,9,10]
console.log(newArr); //结果为:[4,5,6,7,8,9,10]
数组的splice方法

数组的splice方法用于从数组中添加/删除元素,然后返回被删除的元素,该方法会改变原数组。
1.splice的删除功能
splice(3,3)的删除功能,两个参数分别是要删除的下标和删除的个数
var arr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13];

    //原数组发生了改变,并且把删除的元素当成一个新的数组返回
    var newArr=arr.splice(3,3);
    console.log(arr); //结果为:[0,1,2,6,7,8,9,10,11,12,13]
    console.log(newArr);//返回删除的值,结果为:[3,4,5]

2.splice的插入功能

splice(3,0,“a”),三个参数以上,且第二个参数为0,后面还有一个或多个参数,则为插入功能,第一个参数为插入的位置,0则为不删除元素,后面的参数则为插入的元素,可以是一个也可以是多个。

    var arr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13];
    
    var newArr=arr.splice(3,0,"a","b","c",["d","e"]);
    console.log(arr);
    console.log(newArr);

3.splice的替换功能> 删除并添加
splice(3,3,“a”,“b”,“c”,“d”),三个参数以上,且第二个参数不为0,则第一个参数为替换的起始位置下标,第二个参数为删除的元素个数,第三个或后面多个参数则为需要插入的元素。

    var arr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13];
    var newArr=arr.splice(3,3,"a","b","c","d");
    console.log(arr);
    console.log(newArr);
数组的push方法

数组的push方法用于在数组的最后插入一个或多个值,并返回数组的长度,会改变原数组。

    var arr=[0,1,2,3,4,5,6,7,8];
    var len=arr.push("a","b",["c","d"]);
    console.log(arr);  //结果为:[0,1,2,3,4,5,6,7,8,"a","b",["c","d"]]
    console.log(len);  //结果为:12
数组的pop方法

数组的pop方法用于把数组末尾的项删除,并且返回删除的值,每次只删除一个,会改变原数组。

    var arr=[1,2,3,4,5,6,7,8,9];
    var con=arr.pop();
    console.log(arr);  //结果为:[1,2,3,4,5,6,7,8]
    console.log(con); //结果为:9
数组的unshift方法

数组的unshift方法用于在数组的第一个位置插入一个或多个元素,参数靠前的后插入,会改变原数组。

    var arr=[0,1,2,3,4,5,6,7,8,9];
    var len=arr.unshift("a","b");
    console.log(arr); //结果为:["a","b",0,1,2,3,4,5,6,7,8,9]
    console.log(len);  //结果为:12
数组的shift方法

数组的shift方法用于删除数组的第一项,并返回删除的值,每次只能删除一个,会改变原数组。

    var arr=[1,2,3,4,5,6,7,8];
    var con=arr.shift();
    console.log(arr);  // 结果为:[2,3,4,5,6,7,8]
    console.log(con);  // 结果为:1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值