JavaScript学习笔记:数组
文章目录
- 一、一维数组
- 1、创建数组
- (1)创建空数组,逐个赋值
- (2)创建数组同时赋值
- (3)创建字面量数组
- 2、添加数组元素
- 3、数组长度属性length
- 4、遍历数组
- (1)传统for循环
- (2)增强for循环
- 5、数组常用方法
- (1)toString()方法
- (2)join(分隔符)方法
- (3)shift()方法
- (4)unshift()方法
- (5)pop()方法
- (6)push()方法
- (7)slice()方法
- (8)sort()方法
- (9)reverse()方法
- (10)splice()方法
- (11)concat()方法
- 二、二维数组
- 1、创建二维数组
- (1)逐个赋值
- (2)静态初始化整个二维数组
- 2、遍历二维数组
数组是一组数据构成的集合,通过下标或索引访问里面的元素。
一、一维数组
1、创建数组
(1)创建空数组,逐个赋值
<script type="text/javascript">// 创建数组var scores = new Array();// 逐个赋值scores[0] = 89;scores[1] = 90;scores[2] = 67;scores[3] = 75;scores[4] = 45;// 输出数组document.write(scores);
</script>
(2)创建数组同时赋值
<script type="text/javascript"> // 创建数组同时赋值var scores = new Array(89,90,67,75,45);// 输出数组document.write(scores);
</script>
(3)创建字面量数组
<script type="text/javascript"> // 创建字面量数组var scores = [89,90,67,75,45];// 输出数组document.write(scores);
</script>
注意:数组存储的数据可以是任何类型(数字、字符、布尔值等)
<script type="text/javascript"> // 创建数组var student = new Array();// 逐个赋值student[0] = 1;student[1] = '张三丰';student[2] = true;student[3] = new Date(1997, 6, 5);// 输出数组document.write(student);
</script>
2、添加数组元素
只需使用下一个未使用的索引,任何时刻可以不断地向数组增加新元素。
<script>var cities = ['北京','上海','广州','深圳'];document.write(cities + '<br/>');cities[4] = '泸州';document.write(cities + '<br/>');cities[10] = '宜宾';document.write(cities + '<br/>');
</script>
3、数组长度属性length
数组的length
属性表示数组的长度,即数组元素的个数。
数组arr的索引取值范围:[0, arr.length - 1]
<script>var arr = [45,56,67,23,90,100];document.write("数组内容:" + arr + "<br/>");document.write("数组长度:" + arr.length + "<br/>");document.write("第一个元素:" + arr[0] + "<br/>");document.write("最后一个元素:" + arr[arr.length - 1]+ "<br/>");
</script>
注意,数组的length
属性是可变的,增加了数组元素或减少了数组元素,length
属性值都会发生变化。
arr[8] = 88;
document.write("数组内容:" + arr + "<br/>");
document.write("数组长度:" + arr.length + "<br/>");document.write("移除第一个元素:" + arr.shift() + "<br/>");
document.write("数组内容:" + arr + "<br/>");
document.write("数组长度:" + arr.length + "<br/>");
可以直接修改length
属性值,如果修改值大于数组原有长度,那么不影响原有数据,只是添加一些空值。但是修改值小于数组原有长度,那么就会导致部分数据丢失。
arr.length = 12;
document.write("数组内容:" + arr + "<br/>");
document.write("数组长度:" + arr.length + "<br/>");arr.length = 3;
document.write("数组内容:" + arr + "<br/>");
document.write("数组长度:" + arr.length + "<br/>");
4、遍历数组
(1)传统for循环
<script>var cities = ['北京','上海','广州','深圳','泸州'];// 采用传统for循环遍历数组for (var i = 0; i < cities.length; i++) {document.write('cities[' + i + '] = ' + cities[i] + '<br/>');}
</script>
(2)增强for循环
// 采用增强for循环遍历数组
for (var i in cities) {document.write('cities[' + i + '] = ' + cities[i] + '<br/>');
}
5、数组常用方法
(1)toString()方法
<script>var arr = ['12','34','67','89','47','21','89','100','50'];var arr_str = arr.toString();document.write(typeof arr_str + ': ' + arr_str);
</script>
(2)join(分隔符)方法
如果不设置分隔符,默认是逗号作为分隔符。
document.write(arr.join());
document.write(arr.join('-'));
document.write(arr.join(' '));
(3)shift()方法
移除数组头部元素,返回的也是数组头部元素。
document.write('移除头部元素:' + arr.shift() + '<br/>');
document.write('数组内容:' + arr + '<br/>');
(4)unshift()方法
在数组头部添加新元素。
document.write('在头部添加新元素:99' + '<br/>');
arr.unshift(99);
document.write('数组内容:' + arr + '<br/>');
(5)pop()方法
移除数组尾部元素,返回的也是数组尾部元素。
document.write('移除尾部元素:' + arr.pop() + '<br/>');
document.write('数组内容:' + arr + '<br/>');
(6)push()方法
在数组尾部添加新元素,一个或多个。
document.write('在尾部添加新元素:12,55' + '<br/>');
arr.push(12,55);
document.write('数组内容:' + arr + '<br/>');
(7)slice()方法
slice()
方法是对数组进行切片操作,返回数组的一部分内容。
document.write('数组内容:' + arr + '<br/>');
document.write('slice(0,3):' + arr.slice(0,3) + '<br/>');
document.write('slice(2,6):' + arr.slice(2,6) + '<br/>');
(8)sort()方法
sort()
默认是按字母排序。
document.write('数组内容:' + arr + '<br/>');
document.write('排序数组内容:' + arr.sort() + '<br/>');
大家可以看到,arr是按字母排序的,不是按数字排序的。
如果要按数字排序,那么就要传入一个函数作为参数。
function num_asc(a, b) {return a - b; // 升序
}
document.write('按数字升序:' + arr.sort(num_asc) + '<br/>');function num_des(a, b) {return b - a; // 降序
}
document.write('按数字降序:' + arr.sort(num_des) + '<br/>');
(9)reverse()方法
该方法将数组进行反序操作。
document.write('原序数组:' + arr + '<br/>');
arr.reverse();
document.write('反序数组:' + arr + '<br/>');
(10)splice()方法
该方法用于插入或删除数组元素。
// 从索引为2的元素开始,删除4个元素
arr.splice(2, 4);
document.write('数组内容:' + arr + '<br/>');
// 从索引为2的位置开始,插入4个元素
arr.splice(2, 0, '34', '47', '55', '67');
document.write('数组内容:' + arr + '<br/>');
(11)concat()方法
该方法用于连接两个数组。
var arr1 = [1, 2, 3];
var arr2 = ['北京', '上海', '广州'];
var arr3 = arr1.concat(arr2);
document.write('arr1:' + arr1 + '<br/>');
document.write('arr2:' + arr2 + '<br/>');
document.write('arr3:' + arr3 + '<br/>');
二、二维数组
1、创建二维数组
(1)逐个赋值
<script>// 创建二维数组var arr = new Array();for (var i = 0; i < 3; i++) {arr[i] = new Array();for (var j = 0; j < 4; j++) {arr[i][j] = (i + 1) * (j + 1);}}// 输出二维数组document.write('全部元素:' + arr + '<br/>'); document.write('行数:' + arr.length + '<br/>');document.write('列数:' + arr[0].length + '<br/>');
</script>
(2)静态初始化整个二维数组
<script>// 创建二维数组var arr = [[3, 4, 6, 7],[6, 3, 9, 1],[5, 8, 2, 3]];// 输出二维数组document.write('全部元素:' + arr + '<br/>'); document.write('行数:' + arr.length + '<br/>');document.write('列数:' + arr[0].length + '<br/>');
</script>
2、遍历二维数组
// 遍历二维数组
for (var i = 0; i < arr.length; i++) {for (var j = 0; j < arr[i].length; j++) {document.write(arr[i][j] + ' ');}document.write('<br/>');
}
JavaScript学习笔记:数组相关推荐
- (10)JavaScript学习笔记 - 数组
一.创建 //最简单的方法就是使用数组直接量 var empty=[]; var primes=[2,3,4,5,6]; var misc=[1.1,true,"a"];//数组直 ...
- 19.JavaScript学习笔记——数组
数组 文章目录 数组 1. 数组定义 1.1 数组字面量 1.2 Array构造函数 1.3 关于数组空位 1.4 ES6新增创建数组的静态方法(了解) 2. 数组的读和写 3. 数组的常用方法(基于 ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
- JavaScript学习笔记(六)--数组
数组初始化 我们都知道,数组是用于保存多个值的集合,在数组中,值被称为元素,值可以是任意的数据类型.在Javascript中,创建数组通常有两种方式:字面量和构造函数. 字面量 数组的元素可以是任意的 ...
- JavaScript 学习笔记(1)
1. 何为 Jscript JScript 是一种解释型的.基于对象的脚本语言. 局限性: 1) 不能使用该语言来编写独立运行的应用程序 2) 没有对读写文件的内置 ...
- 前端获取div里面的标签_web前端教程JavaScript学习笔记DOM
web前端教程JavaScript学习笔记 DOM一DOM(Document Object Model): 文档对象模型 其实就是操作 html 中的标签的一些能力 我们可以操作哪些内容 获取一个元素 ...
- JavaScript学习笔记05【高级——DOM对象】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
- JavaScript学习笔记02【基础——对象(Function、Array、Date、Math)】
w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...
- 正则至少一个数字_好程序员web前端培训分享JavaScript学习笔记之正则
好程序员web前端培训分享JavaScript学习笔记之正则,正则表达式,又名 "规则表达式" 由我们自己来书写 "规则",专门用来检测 字符串 是否符合 &q ...
- JavaScript学习笔记:对象
JavaScript学习笔记:对象 1.声明对象 (1)字面量对象 <!DOCTYPE html> <html lang="en"> <head> ...
最新文章
- Java项目:智能制造生产管理平台(java+SSM+mysql+Maven+Easyui+JSP)
- 神经网络基础及逻辑回归实现
- 【Python-ML】无监督线性降维PCA方法
- core和node开发小程序_成都小程序开发:微信小程序开发要多少钱?
- linux驱动导出文件属性,将Linux配置文件和设置备份到USB闪存驱动器的方法
- 顶社区创始人:解读顶社区的背后的事
- 数据库基础(5)1NF,2NF,3NF,BCNF 四大范式的定义和判别
- Java 数据字典的实现
- 关于微信第三方服务消息提醒
- 个人博客系统项目-已开源
- win10提示无法打开这个应用怎么办
- 多传感器融合track fusion
- 华为鸿蒙系统操作教程_华为鸿蒙系统2.0怎么安装 鸿蒙系统2.0安装教程[多图]
- vue语法、跨域报错等问题集合
- TCP连接的建立和释放过程详解(三次握手、四次挥手)
- jchdl - RTL实例 - MOS6502 ALU (Verilog)
- 51单片机C语言程序100例分析(1)IO+C语言+头文件
- Centos7安装trash-cli
- 【algods】4.树和二叉树、完全二叉树、满二叉树、二叉查找树、平衡二叉树、堆、哈夫曼树、散列表...
- python中的无穷大
热门文章
- 90%代码如何实现自动迁移到鲲鹏平台?
- 用生动的案例一步步带你学会python多线程模块
- MapReduce源码刨析
- 编写函数实现有序数组的二分查找
- C++中使用set和unordered_set的find方法时遇到的小坑
- LaTeX中常用表格制作方法总结
- 【java基础知识】spring框架开发时,怎样解决mysql数据库中Timestamp到String的简单转换
- 【python基础知识】调用C++接口(setup.py运行)出现的各种问题
- 关于计算机维护的相关试题,比较好写的计算机系统维护论文选题 计算机系统维护论文题目哪个好...
- 修改oracle的表空间文件scn,分享:bbed修改数据文件头推进scn与其他数据文件相同...