js学习笔记之:数组(一)
今天来学习一下js中的一维数组、二维数组,以及数组的赋值、遍历、删除、排序等操作;
1 数组的声明
js提供了一个数组对象Array,默认是一维数组,其申明的方法如下:
var aCity = new Array();
在实际应用中,可以在申明的同时,给数组进行赋值:
var aCity = new Array("北京","上海","广州");
还可以在声明数组时,给数组指定长度;
var aCity = new Array(2);
要说明的是,本方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为2,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。
2 二维数组声明
步骤1: 声明一个一维数组 var aCity = new Array();
步骤2: 声明子数组 aCity[0] = new Array();
aCity[1] = new Array();
aCity[2] = new Array();
//给二维数组赋值: aCity[0][0] = "常州";
3 数组赋值:
给数组赋值有以下几种形式:
(1)声明时直接赋值
var aCity = new Array("北京","上海","广州");
(2)添加元素
var aCity = new Array();
aCity[0] = "南京";
aCity.push("北京","四川"); //push方法用于在数组尾部添加元素 ,遍历输出: 南京、北京、四川
aCity.unshift("上海","天津"); //unshift方法用于在数组头部添加元素,遍历输出:上海、天津、南京、北京、四川
(3)指定长度的数组赋值
var bCar = new Array(2);
bCar.push("奔驰");
bCar.push("宝马");
bCar.push("沃尔沃");
alert(bCar.length); //请大家一同思考一个问题,这里输出的长度是多少?
来看看执行结果:

是的,是5,而不是3,也就是说,在声明数组时所占用的2个长度,并没有给赋值,那么我们可以输出bCar[0]和bCar[2]来看看:

输出结果可以看到,bCar[0]和bCar[1]没有进行赋值,push方法是从bCar[2]开始添加元素;同理我们使用 bCar.unshift("皇冠","别克");进行添加元素,
结果是:"皇冠","别克"两个元素也不占用系统分配的2个空元素,插入在空元素之前,这时的bCar[3]、bCar[4]变成了空元素;
那么,我们如何给这两个空元素进行赋值呢?
var bCar = new Array(2);
bCar[0] = "福特";
bCar[1] = "本田";
这样赋值方法,即给空元素指定赋值了,其数组长度任然为2;
综上所述: push方法和unshift方法严格讲是“插入元素”,并不覆盖数组初始化声明时所产生的空元素,这里在使用的时候要注意;
js学习笔记之:数组(一)的更多相关文章
- JS学习笔记 (四) 数组进阶
1.基本知识 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中的位置称为索引,以数字表示,以0开始. 2.数组是无类型的.数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的 ...
- [前端JS学习笔记]JavaScript 数组
一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {&qu ...
- 【学习】js学习笔记:数组(二)
二维数组 例子:矩形反转: <script> var arr=[[1,1,1,1,1],[2,2,2,2,2],[3,3,3,3,3],[4,4,4,4,4],[5,5,5,5,5]]; ...
- 【学习】js学习笔记:数组(一)
1.创建数组并赋值 //对象方式 var arr=new Array(1,2,3,4); //隐形声明方式 var arr2=[5,6,7,8]; 2.数组可以存储任何类型的数据 3.访问数组,是用下 ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- 2019-4-29 js学习笔记
js学习笔记一:js数据类型 1:基本数据类型 number类型(整数,小数) String类型 boolean类型 NaN类型其实是一个nu ...
- 基于jquery的插件turn.js学习笔记
基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...
- 【转】Backbone.js学习笔记(二)细说MVC
文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...
- Node.js学习笔记(2):基本模块
Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...
- WebGL three.js学习笔记 加载外部模型以及Tween.js动画
WebGL three.js学习笔记 加载外部模型以及Tween.js动画 本文的程序实现了加载外部stl格式的模型,以及学习了如何把加载的模型变为一个粒子系统,并使用Tween.js对该粒子系统进行 ...
随机推荐
- (转载)mysql 存在该记录则更新,不存在则插入记录的sql
(转载)http://www.codesky.net/article/201003/105754.html 代码如下: INSERT table (auto_id, auto_name) values ...
- 数学(线性规划): ZJOI2013 防守战线
偷懒用的线性规划. #include <iostream> #include <cstring> #include <cstdio> using namespace ...
- 【单调栈】Vijos P1926 紫色的手链
题目链接: https://vijos.org/p/1926 题目大意: 给n个数(n<=100 000),求任意区间的最大值异或次大值的最大值. 题目思路: [模拟][单调栈] 我们维护一个严 ...
- IIS6.0服务器搭建网站无法访问解决方法
IIS6.0服务器搭建网站无法访问解决方法 IIS6.0服务器搭建网站无法访问解决方法很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的, ...
- bzoj1227 [SDOI2009]虔诚的墓主人(组合公式+离散化+线段树)
1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec Memory Limit: 259 MBSubmit: 803 Solved: 372[Submit][Statu ...
- 双有序队列算法——处理哈夫曼K叉树的高效算法
算法介绍: 哈夫曼树的思路及实现众所周知,大部分是用堆来维护和实现,这种思路比较清晰,在K比较小的时候处理较快(具体例子接下来再说),而且编程复杂度不是很高,利于应用.但是,其所用的数据结构是树,是在 ...
- 《University Calculus》-chape4-导数的应用-洛必达法则
在求解极限的时候,我们常会遇到0/0型的不定式而无法进一步的求解极限,而洛必达法则就是用于处理这样的特定情况. 洛必达法则: 其证明过程要基于柯西中值定理(在该专栏的微分中值定理中给出). 证明:
- [转]浏览器如何和Web服务器通信
http://hi.baidu.com/ywqme/item/b5297014b2e58f4e6826bb74 概述 普通网民打开网页,访问网站,并不需要了解所谓HTTP协议.作为软件工程师,了解一下 ...
- python 代码格式化工具:pep8ify
资料: https://github.com/spulec/pep8ify 安装 $ pip install pep8ify 用法 Usage: 2to3 [options] file|dir ... ...
- 【bzoj2434】[Noi2011]阿狸的打字机
题目描述 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母.经阿狸研究发现,这个打字机是这样工作的:l 输入小写字 ...