806笔记(数组)

数组

变量:存储数据的,只能存储一个值

var name='张三'; var age=12;

对象:有本质特征和行为的事物,能存储一条数据(里面可以有多个字段)

var obj={name:'张三',age=12,score:100}

数组:可以存储一组(多条数据)或者一系列相关数据的容器。

好处:可以集中管理数据,提高了性能

数组元素:存储在数组中,并赋予唯一的索引号(下标---从0开始)的数据段。数组元素的数据类型可以不相同。

数组下标:标识数组元素的唯一索引号。最小下标0,最大下标length-1

声明数组

第一种方式:字面量方式 var 数组名=[]
var arr=[1,2,true,'张三',null]

查看数组长度

console.log(arr.length)

向数组中添加数据 数组名[下标]=值

arr[5]=false;

修改数组数据

arr[2]=123

读取数组元素 数组名[下标];没有这个下标的值的时候返回undefined

console.log(arr[2])
第二种方式:构造函数的方式 var 数组名=new Array()
var arr1=new Array()   //创建了一个空数组
console.log(arr1)    //[]

------------
var arr2=new Array(5,6,23)
console.log(arr2)    //[5,6,23]

------------
//构建函数的时候有且仅有一个正整数作为参数,表示数组的长度。
var arr3=new Array(6)   //length=6
console.log(arr3)   //[空属性*6]

//需要向空数组中添加数组元素
arr3[0]=1;
arr3[1]=2;
arr3[2]=3;
arr3[3]=4;
arr3[4]=5;
console.log(arr3)   //[1,2,3,4,5,空属性*1]

//这样添加很麻烦,可以通过循环向数组中添加元素
fot(var i=0;i<6;i++){
    arr3[i]=parseInt(prompt('请输入第'+(i+1)+'个成绩'))
}
console.log(arr3)  

--------------
//参数为其他情况时表示数组中的元素
var arr3=new Array('6')    
console.log(arr3)    // ['6']

数组的属性

  • 数组名.length -----返回数组的长度

  • 数组的数据类型是object

    console.log(typeof arr)
    

遍历数组(就是循环数组)

var arr=[1,34,3,4,5,6]
//遍历数组 读取数组中的所有数据元素
//下标从0开始到length-1结束
for(var i=0;i<arr.length;i++){
    console.log(arr[i])
}
</script>

方法(增,删,改,截,拼,复,排,转)

前增 unshift(新增元素)
    /* unshift(新增元素):在数组的前面增加新的元素
    是否影响原数组:是
    返回值是新增后数组的长度
     */
    var arr = [5, 6, 4, 5, 6, 7]
    var res = arr.unshift(4, [1, 2, 3], 5)
    console.log(arr)
    console.log(res)    //9
后增 push(新增元素)
    /* 后增 push(新增元素):在数组的尾部增加新的元素
    是否影响原数组:是
    返回值是新增后数组的长度
    */
    var arr1 = [2, 3, 4, 5, 6, 7]
    var res1 = arr1.push(4, [1, 2, 3], 4)
    console.log(arr1)
    console.log(res1)   //9
首删 shift()
    /*     shift()
        删除数组首部的元素,一次只能删除一个
        是否影响原数组:是
        返回值是被删除的元素 */

    var arr = [2, 3, 4, 5, 6, 78, 88]
    var res = arr.shift()
    console.log(arr)
    console.log(res)   //2
尾删 pop()
/*     pop()
        删除数组尾部的元素,一次只能删除一个
        是否影响原数组:是
        返回值是被删除的元素 */

    var arr1 = [23, 5, 6, 7, 8, 3, 5, 4, 2, 1]
    var res1 = arr1.pop()
    console.log(res1)    //1
    console.log(arr1)
改 splice()
    /* splice(从哪个下标开始删除(含), 删除的长度, 新增的元素, ...)
    在数组的任意位置可以实现增删改
    返回值: 被删除的元素数组
    是否影响原数组:是 */

删---------------------------
    var arr2 = [5, 6, 7, 8, 9]
    var res2 = arr.splice(2)
    console.log(res2)   //[7,8,9]
    console.log(arr2)   //[5,6]

删几个------------------------
    var arr3 = [5, 6, 7, 8, 9]
    var res3 = arr.splice(2, 1)
    console.log(res3)   //[7]
    console.log(arr3)   //[5,6,8,9]
删同时新增---------------------
    var arr4 = [5, 6, 7, 8, 9]
    var res4 = arr.splice(2, 1, [1, 2, 3], true)  //删除从下标为2开始的一个值,然后在这个位置插入[1,2,3],true
    console.log(res4)   //7
    console.log(arr4)   //[5,6,[1,2,3],true,8,9]
    
不删只新增---------------------
	var arr = [5, 6, 7, 8, 9]
    var res = arr.splice(2, 0, [1, 2, 3], true)
    console.log(res) // [] 
    console.log(arr) //[5, 6, [1, 2, 3], true,7, 8, 9]  会加在7的前面,下标为2的位置
//返回值为空的数组[]

截 slice(start,end)
    /*     slice 截取指定范围的数组元素
        slice(start,end) 从start开始(含),到end结束(不包含),可以不写end的值
        返回值:被截取的新数组
        是否影响原数组:否*/

    var arr = [5, 6, 7, 8, 9]
    var res = arr.slice(2)
    console.log(res)   //[7,8,9]
    console.log(arr)  //[5,6,7,8,9]
    
--------------------
    var arr = [5, 6, 7, 8, 9]
    var res = arr.slice(2, 4)
    console.log(res)   //[7,8]
    console.log(arr)  //[5,6,7,8,9]
    
---------------------
    var arr = [5, 6, 7, 8, 9]
    var res = arr.slice(4, 2)
    console.log(res)   //[]   截取不到
    console.log(arr)  //[5,6,7,8,9]

---------------------
    var arr = [5, 6, 7, 8, 9]
    var res = arr.slice(-4, -2)
    console.log(res)   //[6,7]  从后往前数,倒数第四个(含)到倒数第二个(不包含),不从0开始了
    console.log(arr)  //[5,6,7,8,9]
拼 concat(拼接的元素)
    /* concat(拼接的元素)
    作用:将新的元素拼接到指定的数组后面,形成新的数组(新数组中有数组,则将最外层数组拆开进行拼接)
   在数组的任意位置可以实现增删改
   返回值: 拼接后的新数组
   是否影响原数组:否 */

    var arr = [5, 6, 7, 8, 9]
    var res = arr.concat(-4, -2, [2, 3, [4, 5, 6], 10])
    console.log(res)   //[5,6,7,8,9,-4,-2,3,4,[4,6],10]
    //这里新数组中的外层数组被拆开了
    console.log(arr)    //[5,6,7,8,9]
复 --- >给到新数组
    var arr = [5, 6, 7, 8, 9]
    var list = []
    function fnCopyArr(arr) {
        return arr.slice(0)
    }
    list = fnCopyArr(arr)
    arr[0] = 4
    console.log(arr.list)  //[4,6,7,8,9][5,6,7,8,9]

---------------------------
var arr = [5, 6, 7, 8, 9]
    var list = []
    function fnCopyArr1(arr) {
        return arr.concat()
    }
    list = fnCopyArr1(arr)
    arr[0] = 4
    console.log(arr, list) //[4, 6, 7, 8, 9]  [5, 6, 7, 8, 9]

---------------------------
    var arr = [5, 6, 7, 8, 9]
    var list = []
    function fnCopyArr2(arr) {
        var list = []
        for (var i = 0; i < arr.length; i++) {
            list[i] = arr[i]
        }
        return list
    }
    list = fnCopyArr2(arr)
    arr[0] = 4
    console.log(arr, list)//[4, 6, 7, 8, 9]  [5, 6, 7, 8, 9]

-----------------------------
    var arr = [5, 6, 7, 8, 9]
    var list = []
    function fnCopyArr3(arr) {
        var list = []
        for (var i = 0; i < arr.length; i++) {
            list.push(arr[i])
        }
        return list
    }
    list = fnCopyArr3(arr)
    arr[0] = 4
    console.log(arr, list) //[4, 6, 7, 8, 9]  [5, 6, 7, 8, 9]
    

posted on 2022-08-06 22:15  星野落  阅读(70)  评论(0)    收藏  举报

导航