资讯专栏INFORMATION COLUMN

javascript深入学习笔记-[数组]

cod7ce / 655人阅读

摘要:记笔记很有必要相信我,大多数人的记忆力是不可靠的。解决方式遍历的顺序不确定因为对象不是有序的。出租过程中赶走了某些房客。具体来说就是说存在某个空间没有元素的数组便是稀疏数组怎么处理将会确认这个位置有没有元素存在。同检查元素是否存在

记笔记很有必要——相信我,大多数人的记忆力是不可靠的。

——《与时间做朋友》李笑来

数组

值的有序集合

弱类型

数组中的元素可以是各种类型的

null

undefined

...

空间有限

0~2^32-1( 42_9496_7295)

创建 字面量
var arr = [["ff",{ee:"dd"}],[e,dd]]
var arr = [,,] //2 undefined
new Array()
new Array(100);//100undefined
new Array(1,2,"hi",{"touch":"me"})//[1,2,"hi",{touch:"me"}]
添改查删 添加

.push(xx) //添加到后面

返回添加后数组的数组长度

//等于 arr[arr.length] = xx

.unshift() //添加到前面

删除+输出

(单纯删除)

arr.length -= 1;//删除最后一元素

.shift() //把第一个牺牲出去

.pop() //把最后一个牺牲出去

delete

delete arr[0] // 相当于 arr[0] = undefined

迭代 for(;;)

for(i in arr)

作为一个对象来遍历这个数组时

当Array原型上定义了一个属性的时候,for i in arr一个数组的时候,将会把原型上的这个属性也遍历出来,不管这个数组是在这之前还是之后生成的。

var arr = [1,2,3]
Array.prototype.x = "inherited"
for(i in arr){
    console.log(i + " " + arr[i]);
}
//1 1
//2 2
//3 3
//x "inherited"

解决方式

 for(i in arr){ 
    if(arr.hasOwnProperty(i){
    //do somethings
    } 
}

遍历的顺序不确定

因为对象不是有序的。

数组的两种特殊形式 二维数组 遍历一个二位数组

通过嵌套的循环

var arr = [[0,1],[1,2],[2,3]]
for(var i =0;i
应用

二位平面定位

三位空间点定位(使用三维数组

稀疏数组(不常用)

内部的元素构不成一个连续序列

一般length属性值比实际元素个数大

什么东西?

将数组比作一栋出租屋,里面按照输入的参数建了好几个房间。

除了部分建造时就不打算用来出租的空房间之外

如果存在没有人住的空房间

那么这个出租屋就是“稀疏出租屋”。

//按照输入的参数建了好几个房间
var apartment = [1,undefined,,4,"watch"]

// 建造时就不打算用来出租的空房间
apartment[1]
// undefined 
1 in apartment
// true

// 没有人住的空房间
aprtment[2]
// undefined
2 in apartment
// false

// 稀疏出租屋
apartment;
// [1,undefined,,4,"watch"]
怎么产生的?

这个空房间的产生可能由于:

建房子的时候输入的参数没有指明用途。var empty = [,,]

出租过程中赶走了某些房客。delete arr[1]

具体来说就是说: 存在某个空间没有元素的数组便是稀疏数组

怎么处理?

in

{number} in {arr} 将会确认 arr[number] 这个位置有没有元素存在。

arr[i] == undefined

同检查元素是否存在

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80924.html

相关文章

  • JavaScript框架学习笔记(一)

    摘要:基本的学习思路是跟着框架设计这本书,甚至可以说是这本书的读书笔记。也参考很多网上解读的博客和学习资料。当然,最重要的资料还是框架的源代码。后来由于开发者反对,新兴的框架都在命名空间上构建。 JavaScript框架学习笔记(一) 我为什么要学习框架 更深入的理解工具,以后用起来更顺手而且也能做一定的工具取舍,学习理解新工具也就更快, 对提升js水平也很有帮助,框架有很多解决坑的经典思...

    Shonim 评论0 收藏0
  • 26天学通前端开发(配资料)

    摘要:网上有很多前端的学习路径文章,大多是知识点罗列为主或是资料的汇总,数据量让新人望而却步。天了解一个前端框架。也可以关注微信公众号晓舟报告,发送获取资料,就能收到下载密码,网盘地址在最下方,获取教程和案例的资料。 前言 好的学习方法可以事半功倍,好的学习路径可以指明前进方向。这篇文章不仅要写学习路径,还要写学习方法,还要发资料,干货满满,准备接招。 网上有很多前端的学习路径文章,大多是知...

    blair 评论0 收藏0
  • 深入理解ES6》笔记——导读

    摘要:最近买了深入理解的书籍来看,为什么学习这么久还要买这本书呢主要是看到核心团队成员及的创造者为本书做了序,作为一个粉丝,还是挺看好这本书能给我带来一个新的升华,而且本书的作者也非常厉害。 使用ES6开发已经有1年多了,以前看的是阮一峰老师的ES6教程,也看过MDN文档的ES6语法介绍。 最近买了《深入理解ES6》的书籍来看,为什么学习ES6这么久还要买这本书呢?主要是看到Daniel A...

    Godtoy 评论0 收藏0
  • 写技术博客那点事

    摘要:从现在开始,养成写技术博客的习惯,或许可以在你的职业生涯发挥着不可忽略的作用。如果想了解更多优秀的前端资料,建议收藏下前端英文网站汇总这个网站,收录了国外一些优质的博客及其视频资料。 前言 写文章是一个短期收益少,长期收益很大的一件事情,人们总是高估短期收益,低估长期收益。往往是很多人坚持不下来,特别是写文章的初期,刚写完文章没有人阅读会有一种挫败感,影响了后期创作。 从某种意义上说,...

    ddongjian0000 评论0 收藏0

发表评论

0条评论

cod7ce

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<