建议阅读时间 : 10分钟

主要内容:javascript数组的基本概念、属性、方法

新建数组:

var arr01 = ["a","b","c","d"];
var arr02 = new Array("a","b","c","d");

上面的两个方法都可以创建数组 ["a","b","c","d"];

区别:arr02是通过Array类创建,arr01是通过js内部提供的字面量的方式赋值创建。

new Array()括号中可以接收两种类型的参数,第一种:数组的内布值(如上面代码),第二种:一个数字,规定数组的长度(空数组);

数组的取值与赋值

取值:通过下标 arr01[0]  即可取得arr01中的 "a"

赋值:通过下标 arr01[0] = "m" 即可修改arr01种的"a"为"m"

如果赋值的时候下标比原来的长度大,比如 arr01[6] = "k", 那么数组的长度会变成7,其中的5、6位会赋值undefined

数组的长度

通过 arr01.length 获取

也可以通过长度赋值改变,如 arr01.length=3,及修改了长度

当修改的长度小于原来长度的时候,就会去删掉多余下标上的值,如果大于原来的长度,那多出的长度部分就会赋值undefined

数组的遍历

一般的for循环

for(var i=0; i<arr01.length; i++){
console.log(arr01[i]);
}

for in 循环

for( index in arr01){
console.log(arr01[index]);
}

两个循环都能获取数组的所有值

区别:第一种可以循环出所有下标的值,包括没有赋值的下标的值(undefined), 第二种只循环有值得部分,没有赋值的下标不会被循环

数组的常用方法:

join( ) :把数组的所有元素放入一个字符串,通过一个的分隔符进行分隔

 var arr01 = ["a","b","c","d"];
var str01 = arr01.join("-"); //输出字符串 a-b-c-d

操作后原数组不变,如果参数传""空字符串,就得到abcd

pop( ):删除并返回数组的最后一个元素

var arr01 = ["a","b","c","d"];
var str01 = arr01.pop(); //str01 为 d

经过上面的操作,arr01变成了["a","b","c"]

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

var arr01 = ["a","b","c","d"];
arr01.push("e");

经过上面的操作,arr01变成了["a","b","c","d","e"]

shift():删除并返回数组的第一个元素

var arr01 = ["a","b","c","d"];
var str01 = arr01.shift(); //str01 为 a

经过上面的操作,arr01变成了["b","c","d"]

unshift():向数组的开头添加一个或更多元素,并返回新的长度

var arr01 = ["a","b","c","d"];
arr01.punshift("e");

经过上面的操作,arr01变成了["e","a","b","c","d"]

reverse():颠倒数组中元素的顺序

var arr01 = ["a","b","c","d"];
arr01.reverse();

经过上面的操作,arr01变成了["d","c","b","a"]

其他方法:
sort( ):对数组的元素进行排序,默认按照第一个字符由小到大排序

concat():连接两个或更多的数组,并返回结果

slice():从某个已有的数组返回选定的元素

splice():删除元素,并向数组添加新元素

多维数组:

其实就是数组内部再包含数组。其操作和一维数组完全一致,比如下面的二维数组:

[
["Name0", "Age0", "Address0"],
["Name1", "Age1", "Address1"],
["Name2", "Age2", "Address2"]
]

完!

10分钟弄懂javascript数组的更多相关文章

  1. 10分钟弄懂Raft算法

    分布式系统在极大提高可用性.容错性的同时,带来了一致性问题(CAP理论).Raft算法能够解决分布式系统环境下的一致性问题. 我们熟悉的ETCD注册中心就采用了这个算法:你现在看的这篇微信公众号文章, ...

  2. 这一次,彻底弄懂 JavaScript 执行机制

    本文转自https://juejin.im/post/59e85eebf265da430d571f89#heading-4 本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还 ...

  3. 彻底弄懂 JavaScript 执行机制

    本文的目的就是要保证你彻底弄懂javascript的执行机制,如果读完本文还不懂,可以揍我. 不论你是javascript新手还是老鸟,不论是面试求职,还是日常开发工作,我们经常会遇到这样的情况:给定 ...

  4. [转帖]10分钟看懂Docker和K8S

    10分钟看懂Docker和K8S https://zhuanlan.zhihu.com/p/53260098 2010年,几个搞IT的年轻人,在美国旧金山成立了一家名叫“dotCloud”的公司. 这 ...

  5. 10分钟搞懂toString和valueOf函数(详细版)

    首先要说明的是这两种方法是toPrimitive抽象操作里会经常用到的. 默认情况下,执行这个抽象操作时会先执行valueOf方法,如果返回的不是原始值,会继续执行toString方法,如果返回的还不 ...

  6. 十分钟读懂JavaScript原型和原型链

    原型(prototype)这个词来自拉丁文的词proto,意谓“最初的”,意义是形式或模型.在JavaScript中,原型的探索也有很多有趣的地方,接下来跟随我的脚步去看看吧. 原型对象释义 每一个构 ...

  7. 【前端知识体系-JS相关】10分钟搞定JavaScript正则表达式高频考点

    1.正则表达式基础 1.1 创建正则表达式 1.1.1 使用一个正则表达式字面量 const regex = /^[a-zA-Z]+[0-9]*\W?_$/gi; 1.1.2 调用RegExp对象的构 ...

  8. 一分钟搞懂JavaScript中的JSON对象

    JSON(JavaScript Object Notation)是表示值和对象的通用格式. JavaScript 提供了如下方法: JSON.stringify 将对象转换为 JSON. JSON.p ...

  9. 5分钟弄懂Docker--转载

    编者按:7月3日的“CSDN在线培训:Docker之道”,同时在线人数达到了历史新高,但是最后的QA环节,笔者发现大家的问题 还是很初级的,Docker技术还处在Gartner技术曲线的萌芽期.刚好前 ...

随机推荐

  1. 【DevExpresss】3、LookUpEdit详解(转载)

    [DevExpresss]3.LookUpEdit详解 哈,今天又用到了LookUpEdit控件,主要是用来实现模糊查询和自由输入功能,然而由于长时间没用了,一阵手忙脚乱的,这里把网上收集的一部分教程 ...

  2. UE4 Fade out Mesh

    由于项目需要一个将场景慢慢淡入以及淡出的效果,所以就想了想实现思路.因为PBR光照模型是不支持透明物体的渲染的,所以UE4中的PBR材质在为Opaque时是无法改变透明度的,想来想去想不出解决方法,然 ...

  3. 用vuejs仿网易云音乐(实现听歌以及搜索功能)

    前言 前端时间学了vue,一开始看了vue1.0,后来实在觉得技术总得实践,就直接上手vue2.0.然后花了将近一周时间做了一个网易云音乐的小项目.一开始觉得项目比较小,没必要用vuex所以就没有使用 ...

  4. 浅析如何在Nancy中生成API文档

    前言 前后端分离,或许是现如今最为流行开发方式,包括UWP.Android和IOS这样的手机客户端都是需要调用后台的API来进行数据的交互. 但是这样对前端开发和APP开发就会面临这样一个问题:如何知 ...

  5. Android开源项目库汇总

    最近做了一个Android开源项目库汇总,里面集合了OpenDigg 上的优质的Android开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个star. 抽 ...

  6. NSLog (Log信息的输出)

    概述 NSLog是 cocoa的框架中提供的一个方法 NSLog的定义 NSLog定义在NSObjCRuntime.h中 NSLog与printf的差异 1)NSLog传递进去的格式化字符是NSStr ...

  7. poj 1056 IMMEDIATE DECODABILITY 字典树

    题目链接:http://poj.org/problem?id=1056 思路: 字典树的简单应用,就是判断当前所有的单词中有木有一个是另一个的前缀,直接套用模板再在Tire定义中加一个bool类型的变 ...

  8. PHPMailer 命令执行漏洞(CVE-2016-10033)分析(含通用POC)

    对比一下新老版本:https://github.com/PHPMailer/PHPMailer/compare/v5.2.17…master 其实答案呼之欲出了——和Roundcube的RCE类似,m ...

  9. CAS单点登录服务器搭建

    关于cas单点登录的原理及介绍这里不做说明了,直接开始: 1.war包下载 去官网(https://www.apereo.org/projects/cas/download-cas)下载cas_ser ...

  10. HotSpot的算法实现

    1.枚举根节点 可达性分析中从GC Roots节点找引用,可作为GC Roots的节点主要是全局性的引用与执行上下文中,如果要逐个检查引用,必然消耗时间.另外可达性分析对执行时间的敏感还体现在GC停顿 ...