(五).JavaScript的数组
1. 数组
1.1 数组的基础
数组:同种或不同数据类型数据的有序集合
功能:同时存储多个数据
数据:常量 变量 表达式 数组 函数 对象
定义方式:字面量定义或者构造函数定义
- 字面量定义数组(本质上也是使用new Array()创建数组) - // 1. 定义了一个空的数组
 var arr1 = []; // 2. 定义一个数组,数组中有一个数据
 var arr2 = [1];
 var arr3 = ['dog']; // 3. 定义一个数组,数组中有多个数据
 var arr4 = [1, true, '我的世界'];
 /* 结果
 Array(3)
 0: 1
 1: true
 2: "我的世界"
 length: 3
 [[Prototype]]: Array(0)
 */
 
- 构造函数定义数组 - // 1. 定义了一个空数组
 var arr1 = new Array(); // 2. 定义了一个数组,数组中有一个元素
 var arr2 = new Array('world'); // 3. 定义了一个数组,数组中有多个元素
 var arr3 = new Array('我的世界', 1, 2, true, 1);
 /*
 Array(5)
 0: "我的世界"
 1: 1
 2: 2
 3: true
 4: 1
 length: 5
 [[Prototype]]: Array(0)
 */ // 4. ☆☆☆☆☆☆定义了一个数组,数组长度是5
 // 5个值为undefined
 var arr4 = new Array(5);
 /*
 Array(5)
 length: 5
 [[Prototype]]: Array(0)
 */
 
1.2 数组的索引和长度
xxx.yyy:对象.属性
xxx[yyy]:xxx是对象 xxx[yyy]是对象的属性
xxx.yyy():对象.函数()
- 长度(数组对象名.length) - // 1. 查 访问数组长度
 arr.length() // 2. 删 通过数组长度删除元素
 arr.length = 2; // 3. 增 (☆☆☆推荐☆☆☆)通过数组长度增加元素
 // 原理:数组的最大索引值 = 数组长度 - 1
 arr[arr.length] = '我是索引为4的元素';
 
- 索引(数组对象名[索引]) - // 索引:通过索引操作数组中的指定数据
 // 数组有序体现在,下标从0开始
 var arr = ['dog', true, 1, 'happy']; // 语法:数组对象名[索引]
 // 1. 查 拿到索引为1的元素
 console.log(arr[1]); // 2. 改 修改索引为1的元素值为false
 arr[1] = false;
 console.log(arr[1]); // 3. 增 通过索引增加元素 '我爱中华'
 // 增加或删除元素时,数组长度自动变化
 arr[4] = '我爱中华';
 console.log(arr); // 4. 增 特殊情况
 // 当在指定位置添加元素,中间空下的索引位置元素为 undefined
 arr[8] = '我是第九个元素';
 console.log(arr);
 // (9) ['dog', false, 1, 'happy', '我爱中华', 空属性 × 3, '我是第九个元素']
 // 其实可以理解数组就是无限长的,除了用户自定义的其他位置都是undefined
 
1.3 数组的遍历
    // 数组遍历
    var arr = [1, 2, 3, 4];
    for (var i = 0; i < arr.length; i++) {
        console.log(arr[i]);
    }
1.4 数组的案例
- 数组求和 - var arr = [11, 22, 33, 44, 55];
 var sum = 0;
 for (var index = 0; index < arr.length; index++) {
 sum += arr[index];
 }
 console.log(sum);
 
- 求数组的最大值,最小值,平均值 - var arr = [11, 22, 33, 44, 55];
 var max = arr[0];
 var min = arr[0];
 var sum = arr[0];
 for (var index = 1; index < arr.length; index++) {
 if (arr[index] < min) {
 min = arr[index];
 } if (arr[index] > max) {
 max = arr[index];
 } sum += arr[index];
 }
 console.log('最大值:' + max);
 console.log('最小值:' + min);
 console.log('平均值:' + sum / arr.length);
 
- 合并数组 - var arr = [11, 22, 33, 44, 55];
 var arr1 = ['aa', 'bb', 'cc', 'dd', 'ee'];
 for (var index = 0; index < arr1.length; index++) {
 // 这里利用数组的长度来实现添加元素
 arr[arr.length] = arr1[index];
 }
 console.log(arr);
 
- 反转数组 - // 方法1 翻转原先数组本身
 var arr = [11, 22, 33, 44, 55];
 var temp = 0;
 for (var index = 0; index < arr1.length / 2; index++) {
 temp = arr[index];
 arr[index] = arr[(arr.length - 1) - index];
 arr[(arr.length - 1) - index] = temp;
 }
 console.log(arr); // 方法2 倒序遍历,赋值到新数组
 var arr = [11, 22, 33, 44, 55];
 var newArr = [];
 for (var i = arr.length - 1; i >= 0; i--) {
 newArr[newArr.length] = arr[i];
 }
 console.log(newArr);
 
- 数组去重 - // 新旧数组 标志位 的思路
 var arr = [11, 22, 11, 44, 22, 55, 66, 11];
 var newArr = [];
 var flag = true;
 for (var i = 0; i < arr.length; i++) {
 for (var j = 0; j < newArr.length; j++) {
 if (arr[i] == newArr[j]) {
 flag = false;
 break;
 }
 }
 // 添加元素到新数组
 if (flag) {
 newArr[newArr.length] = arr[i];
 }
 // 重置flag
 flag = true;
 }
 console.log(newArr);
 
- 冒泡排序 - // 冒泡排序 var arr = [47, 65, 12, 78, 3]
 var arr = [47, 65, 12, 78, 3];
 var temp = 0;
 // 轮次
 for (var i = 0; i < arr.length - 1; i++) {
 // 比较次数
 for (var j = 0; j < arr.length - 1 - i; j++) {
 if (arr[j] > arr[j + 1]) {
 temp = arr[j];
 arr[j] = arr[j + 1];
 arr[j + 1] = temp;
 }
 }
 // console.log(arr);
 }
 console.log(arr);
 
1.5 多维数组
- 定义:一个数组中某个数组又是一个数组 
- 示例: - // 二维数组
 var arr = [
 [1, 2],
 ['happy', '我的世界']
 ]; console.log(arr[0][0]); //1 // 三维数组
 var arr = [
 [[1, 2], [3, 4]],
 [['happy', '我的世界'], ['sad', '我的世界']]
 ];
 console.log(arr[1][0][1]); //1
 
(五).JavaScript的数组的更多相关文章
- JavaScript中数组操作常用方法
		JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ... 
- javascript中数组Array的方法
		一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ... 
- javascript中数组的常用算法深入分析
		Array数组是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array是前端必修的功课.本文将给大家详细介绍了javascri ... 
- 总结Javascript中数组各种去重的方法
		相信大家都知道网上关于Javascript中数组去重的方法很多,这篇文章给大家总结Javascript中数组各种去重的方法,相信本文对大家学习和使用Javascript具有一定的参考借鉴价值,有需要的 ... 
- JavaScript对数组的处理(一)
		数组创建 JavaScript中创建数组有两种方式,第一种是使用 Array 构造函数: var arr1 = new Array(); //创建一个空数组 var arr2 = new Array( ... 
- JavaScript的数组系列
		数组 今天逆战班的学习主题关于Javascript的数组,主要有数组的概念.创建.分类.方法.遍历.经典算法...... 一.数组是什么呢?怎么写数组呢?数组有多少种呢? 数组的概念 对象是属性的无序 ... 
- JavaScript中数组去重的几种方法
		JavaScript中数组去重的几种方法 正常情况下,数据去重的工作一般都是由后端同事来完成的,但是前端也要掌握好处理数据的能力,万一去重的工作交给我们大前端处理,我们也不能怂呀.现在我总结了一些去重 ... 
- JavaScript Array数组方法详解
		Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ... 
- JavaScript从数组中删除指定值元素的方法
		本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个 ... 
- javascript常用数组算法总结
		1.数组去重 方法1: JavaScript //利用数组的indexOf方法 function unique (arr) { var result = []; for (var i = 0; i & ... 
随机推荐
- 《基于CNN和SVM的人脸识别系统的设计与实现》论文笔记十六
			一.基本信息 标题:基于CNN和SVM的人脸识别系统的设计与实现 时间:2021 来源:计算机与数字工程 关键词: 人脸识别;卷积神经网络;支持向量机;深度学习; 二.研究内容 问题定义: 针对人脸识 ... 
- Markdown 基础语法 备忘录
			在vscode中使用Markdown先要安装一些插件: Markdown Preview Enhanced Paste Image LimfxCodeEX Code Spell Checker 一级标 ... 
- gorm去重查询 iris框架
			写练习 demo 时遇到需要进行去重查询,gorm没有db.distinct()的写法 // 数据库的表字段 type Pro_location_relation struct { Id int64 ... 
- android cannot generate view binders android.databinding.tool.util.LoggedErrorException
			错误: Cannot resolve type 'viewModel'错误: cannot generate view binders android.databinding.tool.util.Lo ... 
- pdf2docx:可将 PDF 转换成 docx 文件的 Python 库
			pdf2docx:https://github.com/dothinking/pdf2docx 可将 PDF 转换成 docx 文件的 Python 库. from pdf2docx import p ... 
- Paddiing 组件
			一.Flutter Paddiing 组件 在 html 中常见的布局标签都有 padding 属性,但是 Flutter 中很多 Widget 是没有 padding 属性.这个时候我们可以用 Pa ... 
- tomcat多主多备
			主服务器默认轮询,当主服务器全部挂了,就会访问备机backup,备机也默认轮询 
- SpringBoot2.2.2+SpringCloud-Hoxton.SR1整合eureka/gateway
			1.最近在学习SpringCloud分布式项目的知识,所以打算把自己学习到的知识也记录下来,为什么选择学习SpringCloud呢?因为分布式框架还有dubbo,如下图应该可以成为我为什么想学习Spr ... 
- 用Python把PDF文件转换成Word文档
			首先,下载所需要的库 1 :pdfminer 安装库命令: pip install pdfminer3k 2: docx 安装库命令: pip install python_docx 开 ... 
- drf从入门到飞升仙界 02
			restful规范 # restful是一种定义web API接口的设计风格,适用于前后端分离的应用模式中 # 关于restful的10个规范 -1.数据的安全保障,通常使用https协议(http+ ... 
