数组的基础

本文详细介绍了JavaScript中数组的创建、读写、元素操作、遍历及复制等基础知识,包括使用Array构造函数和字面量创建数组,通过[]操作符读写元素,以及push、unshift、pop和shift等方法的使用。此外,还讨论了数组的浅复制和深复制,并举例说明了两种复制方式的区别。最后,提到了数组在JavaScript中作为对象的特性,如稀疏数组的概念。
摘要由CSDN通过智能技术生成

        JS中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引只能是整数。然而这些数字索引在内部被转换为字符串类型,这是因为JS对象中的属性名必须是字符串,数组在JS中只是一种特殊的对象,所以效率上不如其他语言中的数组高。

        JS中的数组严格来说应该称作对象,是特殊的JavaScript对象 ,在内部被归类为数组。由于Array在JS中被当作对象,因此它有许多属性和方法可以在编程时使用。

Array .prototype.__proto__ === Object.prototype  //true

一、创建数组

1、使用Array构造函数

let colors1 = new Array();   //定义空数组
let colors2 = new Array(20);  // 定义长度为20的数组

2、使用数组字面量表述法

let arr = []
let arr1 = [1,2,3,4,5,6,7,8,9]
let arr2 = ["快乐","幸运","肥宅水","编程","代码","国潮"]

推荐使用[ ]操作符,和使用Array的构造函数相比,编写代码的速度更快,效率更高。

二、读写数组

1、读--使用[ ]操作符将数据赋给数组

        let nums = []
        nums[0] =1  //通过[]操作符赋值
        for (let i = 0; i < 10; i++) {
            nums[i] = i+1
        }
        console.log(nums);  //1 2 3 4 5 6 7 8 9 10

2、写--使用 [] 操作符读取数组中的元素

        let h = 0
        let arr6 = new Array({ x: 1, y: 2 }, h + 5, h + 9);
        console.log(arr6[0]);  //  Object{x:1,y:2}
        console.log(arr6[1]);  //  5

length属性反映的是当前数组中元素的个数,使用它,可以确保循环遍历了数组中的所有元素。

JS 中 的数组也是对象,数组的长度可以任意增长,超出其创建时指定的长度。数组元素不连续的数组我们称为稀疏数组。

        let arr = [1, 2, 4, , 6]
        let arr1 = new Array(5);
        arr[10] = 6;
        arr[100] = 56;
        console.log(arr);  // (101) [1, 2, 4, empty, 6, empty × 5, 6, empty × 89, 56]
        console.log(arr.length);  // 101

三、数组元素

1、元素的添加

(a)使用[ ]操作符;

(b)arr.push(val),在数组末尾添加元素;

(c)arr.unshift(val),在数组开头添加元素

         let arr = [1, 2, 4, 6]
        arr[4] = 5
        console.log(arr);  // (5) [1, 2, 4, 6, 5]
        arr.push(7)
        console.log(arr);  // (6) [1, 2, 4, 6, 5, 7]
        arr.unshift(0); 
        console.log(arr);// (7)[0, 1, 2, 4, 6, 5, 7]

2、元素的删除

(a)delete arr[ i ] 操作符

(b)arr.pop() 删除数组最后一个元素

(c)arr.shift() 删除第一个元素

        let arr = [1, 2, 4, 6]
        delete arr[3]  // (4) [1, 2, 4, empty]   empty---空
        console.log(arr);

        arr.pop()
        console.log(arr);  // (3) [1, 2, 4]

        arr.shift(); 
        console.log(arr);  // (2) [2, 4]

3、遍历数组元素

        let numbers = [1, 2, 3, 5, 8, 13, 21];
        let sum = 0;
        for (var i = 0; i < numbers.length; ++i) {
            sum += numbers[i];	//通过[]操作符读取
        }
        console.log(sum);

四、数组复制

讲一个数组赋值给另一个数组,有两种方式,分别是浅复制和深复制。

1、浅复制

        let nums = [1,2,3,4,5,6,7,8,9];
        let sums = nums;
        console.log(sums == nums)  //true
        console.log(sums[0]);  //  1

这种行为被称为浅复制,新数组依然指向原来的数组。

2、深复制

       let nums = [1,2,3,4,5,6,7,8,9];
        let samenums = [];
        let length = nums.length;	//数组长度
        
        for (let i = 0; i < length; i++) {
            samenums[i] = nums[i]
        }
        console.log(samenums == nums)  //false
        console.log(samenums[0]);  // 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值