原生JS之数组

数组

1、new Array(长度)
var arr = new Array(数据的值)
代表其传输的值是什么
2、var arr = [] (这个是第二个创造方式)

认识数组的本质

数组的本质就是一个对象

  • length 属性,表示其数组的长度,会自动变化,值为最大小标+1
    属性不可能是数字,只能是其字符串
    console.log(obj[0]) js会自动将0转换为字符串
  • 数字字符串属性:叫做下标,也叫作索引,相当于每个数组的编号,下标是从0开始的

得到数组的第一项数据

console.log(arr[0])
console.log(arr[5].x) 表示的是其第五项值得对象的x的值

arr[0] 与arr[“0”] 两个值是一样的

  • 向数组当中加起属性
    arr.abc = “dsadsadsawd”
  • 向数组当中加索引
    arr[5] = “的撒的撒”

连续下标的取值范围 0 ~ (length-1),如果给length直接赋值,会导致其截断
实际开发中不要给length赋值

代表其数组的每一项为空
var arr = [,3]

下标

通常情况下 下标都是连续的
下标不连续的数组,叫做稀松数组

var arr = new Array(100) -代表其数组的长度是为100的,会导致其稀松数组

数组的常见操作

添加数组项

  • 数组[长度] = 数据 向数组末尾进行添加数据
    arr[arr.length] = “1231” 向末尾进行添加一项
  • 数组.push(数据) 向数组末尾进行添加一个数据
  • 数组.unshift(数据) 向数据起始位置进行添加一个数据,会导致其数据的下标进行向后移动一位
    push和unshift可以添加多个数据
    例如:arr.push(1,2,3,4)
  • 数组.splice(下标,0,添加的数据):从指定下标开始,删除0个,然后在该位置插入新增加的数据,如果下标超过范围,就按照其边界处理
    arr.splice(2,0,‘abc’,‘vcd’)

删除的数据

例如:var arr = [1,2,3,4]
delete arr[1]

  • 此数据删除之后其length不会进行该表
  • delete 数组[下标]:不会导致其他的属性发生变化,因此,该做法会导致其稀松数组,所以不推荐其该做法
  • 数组.pop():删除其数组的最后一项,该表达是返回其数组的最后项的值
  • 数组.shift():删除数组第一项,该表达是返回其数组第一项的值
  • 数组.splice(下标,删除的数量,添加的数据):从指定下标开始,删除指定的数量,返回其新的数组,其数组是其删除的数据
  • 如果其删除一项都没有,则就会返回其undifine

数组的其他操作

  • 数组.slice(起始位置下标,结束位置下标):从起始位置到结束位置之间的位置拿出来,得到一个新的数组,其数组的位置就不会进行改变;注意其结束下标取不到

下标可以写负数,如果是负数,则从数组的末尾进行选取

如果不写结束下标,则直接取到末尾

  • 数组清空

数组.splice(0,数字的长度)

数组.length = 0 ;

-查找数组中莫一项的下标

  • 数据.indexof(数据)

从数据中一次查找对应的数据,查找时使用严格相等进行比较,如果存在其返回其数组的下标,如果没有没有找到,则得到-1

数组.lastIndexof(数据):

功能和indexof类式,只是得到其最后一个匹配的下标

  • 数组.fill(数组):将数组的所有项。填充为指定的数据
  • 数组.fill(数组,开始下标):将数组的开始位置开始,到数组的末尾,填充为执行的数据
  • 数组.fill(数组,开始下标,结束下标):将数组的开始位置开始,到数组的结束下标,填充为执行的数据

语法补充

in关键字

判断某个属性在对象中是否存在

属性名 in 对象

例如: var obj = { a:1,b:234,c:‘dsads’}
console.log(“a” in obj)

其返回的是其布尔值TRUE 或者 FALSE

创建了一个长度为20的数组
var arr = [1,2,3,4,5,6,7]
console.log( 7 in arr )

返回的结果为false因为其是判断器7在其下标是否是存在的

for-in 循环

for(var prop in 对象){
//循环体
} 

取出其所有对象的属性名,然后每次循环将其中一个属性名赋值给变量prop,运行其循环体

for循环和for-in循环的区别是什么?

最大的区别是稀松数组,

for循环若是稀松数组则为undifined

forin循环不会取到其稀松数组

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值