JavaScript-----8.数组
1.数组的概念
数组是指一组数据的集合,其中每个数据被称为元素,在数组中可以存放任意类型的元素
2. 创建数组
创建数组的两种方式:
- 利用new创建数组
 - 利用数组字面量创建数组(最常用)
 
2.1 利用new创建数组
var arr = new Array();//创建了一个空的数组
2.2 利用数组字面量创建数组[]
数组字面量是[]
var arr = []; //利用数组字面量创建了一个空的数组
var arr1 = [1, 2, 'pink老师', true]; //数组里面的数据要用逗号分隔开
3.获取数组中的元素
3.1数组的索引
索引(下标):用来访问数组元素的序号,下标从0开始。格式:数组名[索引]
var arr1 = [1, 2, 'pink老师', true];
console.log(arr1);//(4) [1, 2, "pink老师", true]
console.log(arr1[2]);//pink老师
var arr2 = ['古力娜扎', '迪丽热巴', '佟丽娅'];
console.log(arr2[0]); //古力娜扎
console.log(arr2[1]); //迪丽热巴
console.log(arr2[2]); //佟丽娅
console.log(arr2[3]); //undefined
4.遍历数组
var arr = ['red', 'green', 'blue'];
for (var i = 0; i < 3; i++) {
    console.log(arr[i]);
}
4.1 数组的长度
格式:数组名.length
var arr = ['关羽', '张飞', '马超', '赵云', '黄忠', '刘备', '姜维'];
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}
案例:求数组的所有数的平均值以及和
var arr = [2, 6, 1, 7, 4];
var sum = 0;
var aver;
for (var i = 0; i < arr.length; i++) {
    sum = sum + arr[i];
}
aver = sum / arr.length;
console.log(sum);
console.log(aver);
案例:求数组中的最大值
var arr = ['2', '6', '1', '77', '53', '25', '7'];
var max_num = arr[0];
for (var i = 0; i < arr.length; i++) {
    if (arr[i] > max_num) {
        max_num = arr[i];
    }
}
console.log(max_num);
案例:把数组转化为字符串
var arr = ['red', 'green', 'blue', 'pink'];
var str = '';
var sep = '*';
for (var i = 0; i < arr.length; i++) {
    str = str + arr[i] + sep;
}
console.log(str);
5.数组中新增元素
现阶段的方法:通过修改length长度以及索引号增加数组元素
5.1通过修改length长度新增数组元素
length属性是可读写的
var arr = ['red', 'green', 'blue'];
console.log(arr.length); //3
arr.length = 5; //将数组的长度修改为5,里面应该有5个元素
console.log(arr); //(5) ["red", "green", "blue", empty × 2]
console.log(arr[3]); //undefined
console.log(arr[4]); //undefined
这样就实现了数组的扩容
5.2通过修改数组索引增数组元素
在上述扩容的基础上
arr[3] = 'pink';
console.log(arr); //(5) ["red", "green", "blue", "pink", empty]
arr[4] = 'hotpink';
console.log(arr); //(5) ["red", "green", "blue", "pink", "hotpink"]
这样就实现了数组元素的追加,在上述的基础上,如果索引号是之前已经有的,那么将实现元素的替换,如下所示:
arr[0] = 'yellow';
console.log(arr);//(5) ["yellow", "green", "blue", "pink", "hotpink"]
同时注意:不要给数组名赋值,否则里面的数据全部都没有啦!
arr = '有点意思';
console.log(arr);//有点意思
案例:将1~10存到数组中
var arr = [];
var num = 10;
for (var i = 0; i < num; i++) {
    arr[i] = i + 1;
}
console.log(arr);
案例:筛选数组
要求将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新的数组
方法1:
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr1 = [];
var j = 0;
for (var i = 0; i < arr.length; i++) {
    if (arr[i] >= 10) {
        arr1[j++] = arr[i];
    }
}
console.log(arr1);//(3) [77, 52, 25]
方法2:
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr1 = [];
//var j = 0;
for (var i = 0; i < arr.length; i++) {
    if (arr[i] >= 10) {
        arr1[arr1.length] = arr[i];
    }
}
console.log(arr1); //(3) [77, 52, 25]
6.数组案例
6.1删除指定的数组元素
要求:将数组[2,0,6,1,77,0,52,0,25,7]中的0去掉,形成一个不包含0的新数组
var arr1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
var arr2 = [];
for (var i = 0; i < arr1.length; i++) {
    if (arr1[i] != 0) {
        arr2[arr2.length] = arr1[i]; //(7) [2, 6, 1, 77, 52, 25, 7]
    }
}
6.2翻转数组
要求:将数组['red','green','blue','pink','purple']的内容反过来存放,输出['purple','pink','blue','green','red']
//方法1:
var arr1 = ['red', 'green', 'blue', 'pink', 'purple'];
var arr2 = [];
for (var i = 0; i < arr1.length; i++) {
    arr2[i] = arr1[arr1.length - -1 - i];
}
console.log(arr2);//(5) ["purple", "pink", "blue", "green", "red"]
//方法2:
var arr1 = ['red', 'green', 'blue', 'pink', 'purple'];
var arr2 = [];
for (var i = arr1.length - 1; i >= 0; i--) {
    arr2[arr2.length] = arr1[i];
}
console.log(arr2);//(5) ["purple", "pink", "blue", "green", "red"]
6.3冒泡排序
原理:是一种算法,把一系列的数据按照一定的顺序按照从小到大的顺序进行排列。一次比较两个元素如果它们顺序错误就把它们交换过来。
//冒泡排序  对n(8)个数进行排序
//对于从小到大排列的情况。(3,1,7,8,3,2,9,5)
//第一趟i=0排序会把最大的数9放在最后的位置,之后就不管9了(1 3 7 3 2 8 5 ||9)比较了n-1(7)次
//第二趟i=1排序会把第二大的数8放在正确的位置,之后就不管8了 得到(1 3 3 2 7 5|| 8 9)比较了n-2(6)次
//第三趟i=2排序会把第三大的数7放在正确的位置,之后就不管7了 得到(1 3 2 3 5 ||7 8 9)比较了n-3(5)次
//第四趟i=3排序会把第四大的数5放在正确的位置,之后就不管5了 得到(1 2 3 3||5 7 8 9)比较了n-4(4)次
//第五趟i=4排序会把第五大的数3放在正确的位置,之后就不管3了 得到(1 2 3||3 5 7 8 9)比较了n-5(3)次
//第六趟i=5排序后(1 2 ||3 3 5 7 8 9)比较了n-6(2)次
//第七趟i=6排序后(1||2 3 3 5 7 8 9)比较了n-7(1)次
var a = ['3', '1', '7', '8', '3', '2', '9', '5'];
var n = a.length; //n-1就是趟数
var temp;
for (var i = 0; i < n; i++) {
    for (var j = 0; j < n - 1 - i; j++) {
        if (a[j] > a[j + 1]) {
            temp = a[j];
            a[j] = a[j + 1];
            a[j + 1] = temp;
        }
    }
}
console.log(a); //(8) ["1", "2", "3", "3", "5", "7", "8", "9"]
6.4选择排序
第一次从下标为0的开始下标为0的这个数与后面的n-1个进行比较;找出最小或者最大的放在下标为0的这个位置;第二次从下标为1的开始比较;查询剩下的最大或者最小值;放在下标为1的位置;以此类推;直到排序完成。
//选择排序
var arr1 = ['3', '1', '7', '8', '3', '2', '9', '5'];
var temp;
for (i = 0; i < 4; i++) { //外层for循环确定交换的轮数
    for (j = i + 1; j < 5; j++) {
        if (arr1[i] > arr1[j]) {
            temp = arr1[i];
            arr1[i] = arr1[j];
            arr1[j] = temp;
        }
    }
}
console.log(arr1); //(8) ["1", "2", "3", "3", "5", "7", "8", "9"]
												
											JavaScript-----8.数组的更多相关文章
- JavaScript Array数组方法详解
		
Array类型是ECMAScript中最常用的引用类型.ECMAScript中的数据与其它大多数语言中的数组有着相当大的区别.虽然ECMAScript中的数据与其它语言中的数组一样都是数据的有序列表, ...
 - JavaScript从数组中删除指定值元素的方法
		
本文实例讲述了JavaScript从数组中删除指定值元素的方法.分享给大家供大家参考.具体分析如下: 下面的代码使用了两种方式删除数组的元素,第一种定义一个单独的函数,第二种为Array对象定义了一个 ...
 - JavaScript中数组操作常用方法
		
JavaScript中数组操作常用方法 1.检测数组 1)检测对象是否为数组,使用instanceof 操作符 if(value instanceof Array) { //对数组执行某些操作 } 2 ...
 - javascript常用数组算法总结
		
1.数组去重 方法1: JavaScript //利用数组的indexOf方法 function unique (arr) { var result = []; for (var i = 0; i & ...
 - javascript中数组的22种方法
		
× 目录 [1]对象继承 [2]数组转换 [3]栈和队列[4]数组排序[5]数组拼接[6]创建数组[7]数组删改[8]数组位置[9]数组归并[10]数组迭代[11]总结 前面的话 数组总共有22种方法 ...
 - javascript中数组Array的方法
		
一.常用方法(push,pop,unshift,shift,join)push pop栈方法,后进先出var a =[1,2,3];console.log(a.push(40)); //4 返回数组的 ...
 - 第二章:javascript: 数组
		
数组是编程世界里最常见的数据结构.任何一种编程语言都包含数组,只是形式稍微有差异.数组是编程语言中的内建类型,通常效率都很高.可以满足不同需求的数据存储,本章将探索javascript中的数组工作原理 ...
 - JavaScript操作数组
		
数组被描述为一个存储元素的线性集合,元素可以通过索引来任意存取. 几乎所有的编程语言都有类似的数据结构,但是Javascript中的数组却略有不同. Javascript中的数组是一种特殊的对象,所以 ...
 - Javascript中数组
		
Javascript中数组 1.什么是数组 所谓的数组就是一组数据的集合,在内存中表现为一段连续的内存地址(保存在堆内存) 2.创建数组的含义 创建数组的目的:就是为了保存更多的数据 3.数组的定义 ...
 - JavaScript删除数组重复元素的5个高效算法
		
之前一段时间一直在准备面试, 因而博客太久没更新: 现在基本知识点都复习完毕, 接下来就分享下 面试的一些常见问题: 去正规的互联网公司笔试.面试有很大的概率会碰到 使用javascript实现数组去 ...
 
随机推荐
- Calamari 安装
			
在CentOS 7 安装Calamari 2016年04月17日 18:59:06 lizhongwen1987 阅读数 8055更多 分类专栏: Ceph 版权声明:本文为博主原创文章,遵循CC ...
 - Asp.net Core 异常日志与API返回值处理
			
需求: 1.对异常进行捕获记录日志 并且修改返回值给前端 解释: ILogger4是自定义的一个日志,更改它就好 解决方案1: 使用中间件进行异常捕获并且修改其返回值 public class Err ...
 - 笔记||Python3之字符串
			
字符串是Python中最常用的数据类型.我们可以使用引号('或''或''')来创建字符串. 三引号特点:可以多行,也可以多行注释. a = 'hello world' a = "hello ...
 - robotframework配置邮箱服务器
			
1.登录邮箱以腾讯企业邮箱为例:开启smtp服务并获得邮箱的客户端授权码 用户名:18890260218@163.com 客户端授权码:admin123 2.进入系统管理-->GO to plu ...
 - 大数据学习笔记——Spark工作机制以及API详解
			
Spark工作机制以及API详解 本篇文章将会承接上篇关于如何部署Spark分布式集群的博客,会先对RDD编程中常见的API进行一个整理,接着再结合源代码以及注释详细地解读spark的作业提交流程,调 ...
 - centos7 7.3php编译安装
			
1.首先更新依赖包. yum -y update 2.安装依赖包 yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bz ...
 - android studio 代码问题总结
			
1,android studio隐藏title时,用eclipse里面的方法不行,所以用下面的代码解决,此代码需要写在 加载xml文件之后 getSupportActionBar().hide(); ...
 - 微信pc端和手机上传处理
			
一.原因 在微信通过电脑版和浏览器登录时,调用了微信上传的接口,wx.getLocalImgData或返回失败. 没办法,只有处理当电脑上传时,使用ajaxuploadfile上传. 二.方法 fun ...
 - 设计模式:规约模式(Specification-Pattern)
			
"其实地上本没有路,走的人多了,也便成了路"--鲁迅<故乡> 这句话很好的描述了设计模式的由来.前辈们通过实践和总结,将优秀的编程思想沉淀成设计模式,为开发者提供了解决 ...
 - (译)An introduction to Kubernetes
			
原文:https://www.jeremyjordan.me/kubernetes/(博客园团队推荐的) 这篇博客文章将对Kubernetes进行介绍,以便您了解该工具背后的动机,含义以及使用方式.在 ...