javascript数据结构与算法:数组

目录

数组

1.数组初认识

1.1、我们为什么要认识数组

1.2认识数组,创建并初始化它

2.对数组元素进行源码设计

2.1插入元素(push unshift)

2.2删除元素(pop  shift  splice)

3.怎么设计二维数组,三维数组

4.总结



数组


1.数组初认识


1.1、我们为什么要认识数组

💜在所有的编程语言中都原生支持数组类型

💝数组是最为简单的数据存储方式(内存数据结构)

💕存取数据简单方便,结构理解方便

一个例子表明

比如我们要存储十二个月的平均温度。你怎么做?

1.书写十二个变量,每个变量存储一个月份。

2.创建一个空数组,,按照数组的索引存储

const mouthAvg=[]
mouthAvg[1]=10
mouthAvg[2]=30
....
....
mouthAvg[12]=29

比较的结果显而易见,数组对于这个问题是更好的解


1.2认识数组,创建并初始化它

数组(Array)是有序的元素序列,储存多个相同类型数据的集合,

 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。

组成数组的各个变量称为数组的分量,也称为数组的元素,

有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标

 创建并初始化数组

1.创建数组

let mouth=new Array()

let mouth=[]

2.初始化数组

//初始化数组,并设置数组长度
mouth=new Array(7)

//初始化数组,并传入数组元素
mouth=new Array('jack','tom','lucy')
number=new Array(12,34,56,89)

3.访问数组,可以通过数组下标访问

eg:

const num=new Array(12,45,67,34,456)
for (let i=0;i<num.length;i++){
    console.log(num[i])
}

2.对数组元素进行源码设计

2.1插入元素(push unshift)

push:用于在数组的最后面进行插入

对num=[1,2,3,4,5]最后插入一个数字10

相当于num[num.length]=10

unshift:用于在数组的开头插入一个元素

怎么对unshift进行源码书写。

从第一个元素开始,腾出一个位置,用于放置前一个元素,循环将前一个位置元素的值

赋值给下一个元素。(如果我们需要在所有的数组中都能访问到这个设计的数据代码可

添加到原型对象中)

代码如下:

const number=[1,4,3,56,7]
Array.prototype.insert=function(value){
    for (let i=this.length;i>0;i--){
        this[i]=this[i-1]
    }
    this[0]=value
}
number.insert(10)
console.log(number)

输出结果就是10,1,4,3,56,7

下面是模拟插入一个数

其实这就相当于数组的unshift方法。

2.2删除元素(pop  shift  splice)

pop方法用于删除数组的最后一个元素

shift方法用于删除第一个元素

源码怎么设计,就是用于将第一个位置的元素删除,用第二个元素

代替第一个元素,后面是一样的办法,但是这样会有一个问题,就是

数组长度不会变,意味着会多出一个位置,他的值为undefind

所以我们可以在新建一个数值,将之前的数组中的元素进行undefind判断

如果不为undefin则加入新数组。需要注意的是,这种不适合在真实项目中

使用。shift的使用会改变数组的长度(减一)而上面的源码不会

let number=[1,4,3,56,7]
Array.prototype.removeIndex=function(myArray){
    let newArray=[]
    for(let i=0;i<myArray.length;i++){
        if(myArray[i]!==undefined){
            newArray.push(myArray[i])
        }
    }
    return newArray
}

Array.prototype.removeFirst=function(){
    for(let i=0;i<this.length;i++){
        this[i]=this[i+1]
    }
    return this.removeIndex(this)
}
number=number.removeFirst()
console.log(number)

输出结果就是4,3,56,7

splice用于在任意位置添加或删除元素

3.怎么设计二维数组,三维数组

因为在js中只支持一维数组,不支持矩阵。

所以我们可以用嵌套数组来模拟矩阵,

比如

🌭创建二维数组

let avg = []

        avg[0] = [34, 65, 68, 797, 9, 70]

        avg[1] = [23, 87, 90, 45, 23, 65]

那么我们怎么遍历他

let avg = []
        avg[0] = [34, 65, 68, 77, 92, 70]
        avg[1] = [23, 87, 90, 45, 23, 65]

 function printAvg(myarray) {
   for (let i = 0; i < myarray.length; i++) {
       for (let j = 0; j < myarray[i].length; j++) {
           console.table(myarray[i][j])
        }
       }
printAvg(avg)
console.table(avg)


🍗那么怎么创建三维数组尼 

 let avg = []
        avg[0] = []
        avg[1] = []
        avg[0][0] = [54, 45, 78, 88, 57, 89]
        avg[0][1] = [23, 87, 90, 45, 23, 65]
        avg[1][0] = [34, 65, 98, 28, 17, 69]
        avg[1][1] = [34, 87, 34, 43, 53, 65]


 function printAvg(myarray) {
     for (let i = 0; i < myarray.length; i++) {
       for (let j = 0; j < myarray[i].length; j++) {
           for(let z=0;z<myarray[i][j].length;z++){
                      console.log(myarray[i][j][z])
                  }
                }
            }
        }
 printAvg(avg)
console.table(avg)

4.总结

🎁了解了数组的一些基本信息。并对他进行初始化

🥾对一些数组元素进行源码设计

push向数组最后位置插入元素
unshift向数组开头插入元素
pop删除数组的最后一个元素
shift删除数组的第一个元素
splice通过指定位置/索引,进行删除,或插入

🏓对于怎么设计二维数组,三维数组有一个基本的概念。

✍在最后,如果觉得博主写的还行,期待🍟点赞  🍬评论 🍪收藏

  • 20
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言不及行yyds

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值