0
点赞
收藏
分享

微信扫一扫

【JavaScript数组】认识数组

老罗话编程 2022-02-09 阅读 78

一、什么是数组

        1、数组的概念:

                引用类型的对象

        2、数组的本质:

                数组是被等分成许多小块的连续内存段,每个小块都与一个整数关联,可以通过该整数快速访问对应的小块。

        3、JavaScript中数组的特点

                JavaScript数组可以存放任意类型的数据,所以说JavaScript中数组几乎等于对象。

二、JavaScript中数组与对象

        在JavaScript中数组几乎等于对象,他们仅有四处不同。

                1、数组有一个神奇的length属性。该属性并不是指数组中元素的数量,而是指数组元素的最高序数加1。这种神奇的设定可以让JavaScript数组假装自己“真的是数组”,从而让他可以被for语句处理。而对象仅能使用for...in语句处理。

                2、数组对象都继承自Array.portotype,该原型比Object.portotype多了一些更实用的函数。

                3、数组与对象的写法不同。

                4、数组的数据没有”名称”,但是有对应的索引;对象的数据有”名称”(属性名),而对象因为是无序数据的集合,所以不存在索引

三、JavaScript中数组的创建

        1、使用字面量创建

let arr = [1,2,3,4,5];
//arr [1,2,3,4,5]

        2、使用构造函数创建

                方式一

                        创建一个空数组

let arr = new Array();
//arr []

                方式二

                        创建一个长度为5的数组,并且存放的全都是undefined

let arr = new Array(5);
//arr[0] === undefined
//true

                方式三

                        创一个长度为3的数组,并且存放1,2,5

let arr = new Array(1,2,5);
//arr [1,2,5]

四、JavaScript中数组常见方法的简单使用

        数组的简单访问和新增、简单修改、简单删除

        简单访问和新增

//let arr = [1, '张三', true, {name: '李四',age: 18}, null, undefined, function test(content) {console.log('我是函数' + content);}]
//数据类型从左到右为 number string object null undefined 函数
    let arr = [1, '张三', true, {
	    name: '李四',
	    age: 18
    }, null, undefined, function test(content) {
	    console.log('我是函数' + content);
    }]

//数组的访问 arr[下标]  从0开始 —— 最高序数-1
//这里使用for循环打印
    for(let i = 0;i < arr.length; i++){
        console.log('下标'+i, '=', arr[i])
    }
//下标0 = 1
//下标1 = 张三
//下标2 = true
//下标3 = {name: '李四', age: 18}
//下标4 = null
//下标5 = undefined
//下标6 = ƒ test(content){console.log('我是函数'+content);}

//对于数组中对象的访问 这里函数的在数组中的下标位置为3
    arr[3].name  //'张三'
    arr[3].age   //16

//对于数组中函数的访问 这里函数的在数组中的下标位置为6
    arr[6]('啊')  //我是函数啊


//访问数组的最后一个元素
    arr[arr.length - 1] // ƒ test(content){console.log('我是函数'+content);}


//在数组最后的位置添加元素
    arr[arr.length] = '新增'
//使用下标访问
    arr[arr.length - 1]  //新增

        简单修改

//let arr = [1, '张三', true, {name: '李四',age: 18}, null, undefined, function test(content) {console.log('我是函数' + content);}]
//数据类型从左到右为 number string object null undefined 函数
    let arr = [1, '张三', true, {
	    name: '李四',
	    age: 18
    }, null, undefined, function test(content) {
	    console.log('我是函数' + content);
    }]

//修改简单数组
    arr[0] = 2
//修改obj
    arr[3].name = '王五'
//修改函数
    arr[6] = function test(content){console.log('我修改喽'+','+content)}


//数组的访问 arr[下标]  从0开始 —— 最高序数-1
//这里使用for循环打印
    for(let i = 0;i < arr.length; i++){
        console.log('下标'+i, '=', arr[i])
    }
//下标0 = 2
//下标1 = 张三
//下标2 = true
//下标3 = {name: '王五', age: 18}
//下标4 = null
//下标5 = undefined
//下标6 = ƒ test(content){console.log('我修改喽'+','+content)}

    arr[6]('嘿嘿') //我修改喽,嘿嘿

        简单删除

//let arr = [1, '张三', true, {name: '李四',age: 18}, null, undefined, function test(content) {console.log('我是函数' + content);}]
//数据类型从左到右为 number string object null undefined 函数
    let arr = [1, '张三', true, {
	    name: '李四',
	    age: 18
    }, null, undefined, function test(content) {
	    console.log('我是函数' + content);
    }]


//删除数组中的最后一个元素
    arr[arr.length--] 或者 arr.length--

//数组的访问 arr[下标]  从0开始 —— 最高序数-1
//这里使用for循环打印
    for(let i = 0;i < arr.length; i++){
        console.log('下标'+i, '=', arr[i]);
    }
//下标0 = 1
//下标1 = 张三
//下标2 = true
//下标3 = {name: '李四', age: 18}
//下标4 = null
//下标5 = undefined

//删除数组中最后n个元素
    let n = 3;
    arr.length -= n;
//下标0 = 1
//下标1 = 张三
//下标2 = true
//下标3 = {name: '李四', age: 18}

        数组中方法的使用

         不改变原数组

                String():

                                将数组转化为字符串

let arr = [1,'张三',true];
let str = String(arr);
console.log(str);     //1,张三,true
console.log(typeof(str));      //string

                join():

                                将数组转化为字符串,并根据自定义内容将其连接起来

let arr = [1,'张三',true];
let Arr= arr.join('-');
console.log(Arr);  //1-张三-true

                concat():

                                将多个数组合并为一个数组

let arr = [1,'张三',true];
let arr1 = [2,'李四',false];
let arr2 = [3,'王五',null]
let Arr= arr.concat(arr1,arr2);
console.log(Arr);   //[1, '张三', true, 2, '李四', false, 3, '王五', null]

                slice():

                        slice():通过索引位置获取元素,该方法不会修改原数组,只是返回一个新的子数组。

let arr = [1, '张三', true, 2, '李四', false]
let Arr = arr.slice(1,3)
console.log(Arr) //['张三', true]
console.log(arr) //[1, '张三', true, 2, '李四', false]

                indexOf():

                        返回查询的字符串在数组中首次出现的位置

let arr = [1,'张三',true,'张三'];
arr.indexOf('张三'); //1

                lastIndexOf():

                        返回查询的字符串在数组中最后一次出现的位置

let arr = [1,'张三',true,'张三'];
arr.lastIndexOf('张三'); //1

        改变元素组

                splice():

                        从数组中添加或删除元素,然后返回被删除的数组

    let arr = [1,'张三',true,'张三'];
//从下标为0的元素开始截取一位
    let Arr = arr.splice(0,1);
    console.log(Arr );  //[1]
    console.log(arr); //['张三', true, '张三']
//从下标为1的元素开始截取0位,并添加'李四',false
    let Arr1 = arr.splice(1,0,'李四',false);
    console.log(Arr1);   //[]
    console.log(arr); //['张三', '李四', false, true, '张三']

                push():

                        向数组的末尾添加一个或多个元素,并返回新的长度

let arr = [1,'张三',true,'张三'];
let Arr = arr.push('我是添加元素');
console.log(Arr); //5
console.log(arr); //[1, '张三', true, '张三', '我是添加元素']

                sort():

                        对数组元素进行排序

let arr = [1,4,7,9,4,5,6,78,99];
//正序
let Arr = arr.sort((a,b)=>(a-b));
console.log(Arr)  //[1, 4, 4, 5, 6, 7, 9, 78, 99]
console.log(arr)  //[1, 4, 4, 5, 6, 7, 9, 78, 99]
//倒序
let Arr1 = arr.sort((a,b)=>(b-a));
console.log(Arr1) //[99, 78, 9, 7, 6, 5, 4, 4, 1]
console.log(arr)  //[99, 78, 9, 7, 6, 5, 4, 4, 1]

                reverse():

                        对数组进行倒序

let arr = [1,'张三',true,'张三'];
arr.reverse();
console.log(arr) //['张三', true, '张三', 1]
举报

相关推荐

0 条评论