今天来学习一下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学习笔记之:数组(一)的更多相关文章

  1. JS学习笔记 (四) 数组进阶

    1.基本知识 1.数组是值的有序集合.每个值叫做一个元素,而每个元素在数组中的位置称为索引,以数字表示,以0开始. 2.数组是无类型的.数组元素可以是任意类型,并且同一个数组中的不同元素也可能有不同的 ...

  2. [前端JS学习笔记]JavaScript 数组

    一.JavaScript数组的奇葩 大多数语言会要求数组的元素是同个类型, 但是JavaScript允许数组元素为多种类型. var arr = ["羽毛球", 666, {&qu ...

  3. 【学习】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]]; ...

  4. 【学习】js学习笔记:数组(一)

    1.创建数组并赋值 //对象方式 var arr=new Array(1,2,3,4); //隐形声明方式 var arr2=[5,6,7,8]; 2.数组可以存储任何类型的数据 3.访问数组,是用下 ...

  5. vue.js 学习笔记3——TypeScript

    目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...

  6. 2019-4-29 js学习笔记

    js学习笔记一:js数据类型   1:基本数据类型       number类型(整数,小数)      String类型          boolean类型        NaN类型其实是一个nu ...

  7. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

  8. 【转】Backbone.js学习笔记(二)细说MVC

    文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...

  9. Node.js学习笔记(2):基本模块

    Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...

  10. WebGL three.js学习笔记 加载外部模型以及Tween.js动画

    WebGL three.js学习笔记 加载外部模型以及Tween.js动画 本文的程序实现了加载外部stl格式的模型,以及学习了如何把加载的模型变为一个粒子系统,并使用Tween.js对该粒子系统进行 ...

随机推荐

  1. 线程调用UpdateData函数出错

    在尝试线程更新界面时,在线程中调用UpdateData(FALSE)后出现如下错误: 原因: MFC对象不支持多线程操作,不能供多个线程进程使用.子线程调用pDlg-> UpdateData(F ...

  2. Majority Element II——LeetCode

    Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorit ...

  3. POJ 1417 True Liars

    题意:有两种人,一种人只会说真话,另一种人只会说假话.只会说真话的人有p1个,另一种人有p2个.给出m个指令,每个指令为a b yes/no,意思是,如果为yes,a说b是只说真话的人,如果为no,a ...

  4. D - Silver Cow Party

    题目大意: 在一个农场里面所有的牛都会来参加大牛举办的派对,不过农场的路都是单向的,而且每头牛都喜欢都最短的路程,那么问题来了,求出来来回花费时间最多的那头牛所用的时间... //////////// ...

  5. ReportViewer中设置ServerReport.ReportServerCredentials属性的方法

    当使用SSRS技术来布置报表,可能使用MS自带的ReportViewer控件来读取报表. 它分为Web和Windows两种版本;此处Web版. ServerReport.ReportServerCre ...

  6. win10在安装Oracle11g时出现了:[INS-13001]环境不满足最低要求,及未找到文件 E:\app\xxj\product\11.2.0\dbhome_1\owb\external\oc4j_applications\applications\WFMLRSVCApp.ear

    win10安装Oracle11g碰到的3个问题: 1.win10在安装Oracle11g时出现了:[INS-13001]环境不满足最低要求 2.未找到文件 E:\app\xxj\product\11. ...

  7. 全面剖析XML和JSON

    1.定义介绍 (1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许 ...

  8. JS 操作 HTML 自定义属性

    <input type="text" id="txtBox" displayName="123456" /> 获取自定义属性值: ...

  9. Fragment 回退栈 传递参数,点击切换图片使用Fragment ListView

    Fragment回退栈  类似与Android系统为Activity维护一个任务栈,我们也可以通过Activity维护一个回退栈来保存每次Fragment事务发生的变化. 如果你将Fragment任务 ...

  10. ubuntu开机黑屏

    以下皆在VM虚拟机下 (1)ctr+alt+f4 进入命令行 (2) sudo apt-get update sudo apt-get install xserver-xorg-lts-quantal ...