1. JavaScript数组用于在单一变量中存储多个值。

2. 创建数组

2.1. 创建数组最简单的方式是使用中括号[]包含项, 多个项用逗号分割:

var array-name = [item1, item2, ...];

2.2. 实例

var cars = ["Saab", "Volvo", "BMW"];

3. 为什么使用数组?

3.1. 如果您有一个书名的项目清单, 在单个变量中存储书名应该是这样的:

var book1 = 'JavaScript DOM编程艺术';
var book2 = '高性能JavaScript';
var book3 = 'javascript高级程序设计';
var book4 = 'JavaScript权威指南';
var book5 = '你不知道的JavaScript';

3.2. 这样的书名清单, 储存起来看起来十分笨重, 访问某个特定值和遍历书名清单显得特别麻烦。解决方法就是数组!

var arr = ["JavaScript DOM编程艺术", "高性能JavaScript", "javascript高级程序设计", "JavaScript权威指南", "你不知道的JavaScript"];

4. 数组元素类型

4.1. 数组元素可以是: 字符串值, 数值, 布尔值, 数组, 对象, 甚至是函数。

4.2. 实例

function run() {}
var colors = ['red', 'blue', 'yellow'];
var objs = {id: 1001};
var cars = ["奔驰", objs, run, true, colors, 300000];

5. length属性

5.1. length属性返回数组的长度(数组元素的数目)。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.length; // fruits 的长度是 4

6. 访问数组元素

6.1. 我们通过引用索引号(下标号)来引用某个数组元素。

6.2. 数组索引从0开始。[0]是数组中的第一个元素, [1]是第二个, 依此类推。

6.3. 实例

var cars = ["Saab", "Volvo", "BMW"];
var name = cars[0];

6.4. 使用length属性访问最后一个数组元素

fruits = ["Banana", "Orange", "Apple", "Mango"];
var last = fruits[fruits.length - 1];

7. 使用索引的方式改变和添加数组元素

7.1. 直接给数组对应下标的元素赋值, 来改变数组元素。

var cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Opel";

7.2. 通过添加新下标给数组添加元素, 使用length属性始终给数组末尾添加元素:

var cars = ["Saab", "Volvo", "BMW"];
cars[cars.length] = "Opel";

7.3. 添加最高索引的元素可在数组中创建未定义的"洞":

var cars = ["Saab", "Volvo", "BMW"];
cars[5] = "Opel";document.write(cars[3] + '<br />'); // 返回undefined
document.write(cars[4] + '<br />'); // 返回undefined
document.write(cars[5] + '<br />'); // 返回"Opel"

8. 遍历数组

8.1. 使用for循环或者for ...in遍历数组。

8.2. 例子

8.2.1. 代码

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8" /><title>遍历数组</title></head><body><script type="text/javascript">var fruits = ["Banana", "Orange", "Apple", "Mango"];for(let item in fruits){document.write(fruits[item] + ' '); }document.write('<br />'); for(let i = 0; i < fruits.length; i++){document.write(fruits[i] + ' '); }</script></body>
</html>

8.2.2. 效果图

024_JavaScript数组相关推荐

  1. 269道各路算法考试题集锦

    1 某编程大赛题(35道题,中等难度) 1.在实际的开发工作中,对于string的处理是最常见的编程任务,本题是要求程序对用户输入的string进行处理,具体要求如下: 1.每个单词的首字母变为大写. ...

  2. 分割数组(将数组三等分)

    简单面试题--分割数组 时间复杂度O(n) //输入:一个自然数数组,选取其中2个数字num[i], num[j], 把数组三分, // 每一部分的累加和(不包括分割点的数字)相等. // 例:num ...

  3. Redis 笔记(11)— 文本协议 RESP(单行、多行字符串、整数、错误、数组、空值、空串格式、telnet 登录 redis)

    RESP 是 Redis 序列化协议Redis Serialization Protocol 的简写.它是一种直观的文本协议,优势在于实现异常简单,解析性能极好. ​ Redis 协议将传输的结构数据 ...

  4. C++ 笔记(27)— 指针变量、数组和指针、指针数组、数组指针、指针常量与常量指针

    1. 什么是指针变量? 指针变量是专门有一个变量来存放指针. int main(int argc, char *argv[]) {int a = 10;int *p = &a; //通过取地址 ...

  5. Go 学习笔记(63)— Go 中的 for ... range 对切片和数组的差异

    1. 迭代对象是切片,迭代过程中修改切片 package mainimport "fmt"func main() {// 示例1.numbers1 := []int{1, 2, 3 ...

  6. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  7. 判断某数组是不是二叉树的前序遍历序列 python递归

    code class Solution:def VerifySquenceOfBST(self, sequence):# write code hereif len(sequence) <= 0 ...

  8. 寻找一个字符串的重复子串 后缀数组

    什么是后缀数组 令字符串 S=S[1]S[2]...S[n]S=S[1]S[2]...S[n]{\displaystyle S=S[1]S[2]...S[n]} , S[i,j]S[i,j]{\dis ...

  9. c语言中字符串数组的地址存放以及%s输出单个字符导致程序崩溃的问题

    代码 总结下c语言中字符串数组的地址存放问题 #include <iostream> using namespace std; #include<bits/stdc++.h>i ...

最新文章

  1. shell基础04 结构化命令
  2. Linux环境中Visual Studio Code的配置使用----编译运行C/C++(良心教程)
  3. 《算法设计》二、算法分析基础
  4. 搜索技巧——持续更新
  5. 前端学习(2306):react之组件使用
  6. MySQL(17)--- LIKE 子句
  7. 使用实体框架核心创建简单的审计跟踪
  8. MySQL高级知识(三)——索引
  9. 基于Go语言实现高并发推荐系统架构设计
  10. php l框架,一个很简单的PHP框架lyue
  11. Monkey 命令 基本参数介绍
  12. FPGA零基础学习:按键控制LED
  13. 用JAVA编程的数字时钟代码
  14. 给自己的逆向工程阶段性学习感想总结
  15. java实现积分抽奖_java毕业设计_springboot框架的超市消费积分抽奖
  16. 探讨地铁区间隧道应急照明设计方案
  17. SAP-QM中途取消检验类型+质检变成非限制
  18. CDH6.3.1安装
  19. 时间复杂度空间复杂度分析
  20. [情感分析的新方法]

热门文章

  1. 《正则表达式经典实例(第2版)》——2.19 在替代文本中添加字面文本
  2. c语言,字符串原地翻转
  3. Windows7 Home高级 64 中文版 + TortoiseSVN 64 英文版 + SVN Server 32 英文版安装过程
  4. 《Google Adsense的秘密》第七章:用Google搜索框黏住易变的访问者
  5. 多云世界中的SD-WAN—Vecloud
  6. GPL协议 与 LGPL协议
  7. 把 textbox 遍历赋值为空
  8. 蓝桥杯基础练习--杨辉三角
  9. MySQL中any、some、all关键字
  10. Struts2 校验数据问题