数组(定义、遍历、冒泡排序、合并和Join 方法)
一、数组的定义
1.理解:数组指一组数据,有序的数据,可以一次性存储多个数据,将多个元素(通常统一类型)按照一定的顺序排列放到一个集合里
2.通过构造函数创建数组: var 数组名=new Arrary( )
- var arr=new Array();
注:括号里如果是1个数字,代表数组的长度是这个数字,就是里面有多少个元素;
括号里如果有多个数字,代表的就是元素本身。
- var arr=new Array(5);
- console.log(arr);//(5) [empty × 5]表示5个空元素
- var arr=new Array(5,1,10);
- console.log(arr);//(3) [5, 1, 10]表示3个元素:5,1,10
3.通过字面量的方式创建数组 var 数组名=[ ]
- var arr=[1,2,3,4,5];
4.注意
- 如果定义的数组没有长度,那么默认是undefined;
- var arr=[];
- console.log(arr[1]);//undefined
- 数组长度代表的是元素的个数,通过数组名.length获取数组长度(元素个数)
- var arr=[1,2,3,4,5];
- console.log(arr.length);//
- 数组的下标(索引)是从0开始的
- var arr=[1,2,3,4,5];
- console.log(arr[0]);//
- console.log(arr[1]);//
- console.log(arr[4]);//
- 数组里面的数据类型可以不一样,但是通常都是一样的,方便操作
- var arr=[1,"前端",2];
- console.log(arr[0]);//
- console.log(arr[1]);//前端
- 数组的长度可以改变,通过索引来设置数组中的元素的值
- var arr=[];
- console.log(arr.length);//
- arr[0]=1;
- arr[1]=4;
- arr[2]=5;
- console.log(arr);//(3) [1, 4, 5]
- console.log(arr.length);//
二、数组的遍历:for循环
- var arr=[10,20,30,40,50];
- for(var i=0;i<arr.length;i++){
- console.log(arr[i]);//10 20 30 40 50
- }
运用例子:
- //例1:数组中所有元素的和
- var arr=[10,20,30,40,50];
- var sum=0;
- for(var i=0;i<arr.length;i++){
- sum+=arr[i];
- }
- console.log(sum);//
- //例2:数组中元素的平均值
- var arr=[10,20,30,40,50];
- var sum=0;
- for(var i=0;i<arr.length;i++){
- sum+=arr[i];
- }
- console.log(sum/arr.length);//30
- //例3:数组中的最大值和最小值
- var arr=[10,20,30,40,50];
- var max=arr[0];
- var min=arr[0];
- for(var i=0;i<arr.length;i++){
- if(max<arr[i]){
- //最大值
- max=arr[i];
- }
- if(min>arr[i]){
- //最小值
- min=arr[i];
- }
- }
- console.log(max);//
- console.log(min);//
- //例3:数组拼接字符串输出
- var arr=[10,20,30,40,50];
- var str="";
- for(var i=0;i<arr.length;i++){
- if(i==0){
- str+=arr[i];
- }else{
- str+="|"+arr[i];
- }
- }
- console.log(str);//10|20|30|40|50
- //例4:去掉重复的0
- var arr=[1,0,5,0,9,0,10];
- var newArr=[];
- for(var i=0;i<arr.length;i++){
- if(arr[i]!=0){
- //利用新数组的长度巧妙的解决
- newArr[newArr.length]=arr[i];
- }
- }
- console.log(newArr);//(4) [1, 5, 9, 10]
- //例5:求数组的反转数
- var arr=[10,40,50,20,30];
- for(var i=0;i<arr.length/2;i++){
- temp=arr[i];
- arr[i]= arr[arr.length-1-i];
- arr[arr.length-1-i]=temp;
- }
- console.log(arr);//(5) [30, 20, 50, 40, 10]
三、冒泡排序:把所有的数据按照一定的顺序进行排列
- // 冒泡排序(从小到大)
- var arr=[50,40,30,20,10];
- for(i=0;i<arr.length-1;i++){
- //比较的轮数循环
- for(var j=0;j<arr.length-1-i;j++){
- //比较的次数循环
- if(arr[j]>arr[j+1]){
- //交换变量
- var temp=arr[j];
- arr[j]=arr[j+1];
- arr[j+1]=temp;
- }
- }
- }
- console.log(arr);//(5) [10, 20, 30, 40, 50]
- //冒泡排序(从大到小)
- var arr=[10,20,30,40,50];
- 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);//(5) [50, 40, 30, 20, 10]
四、数组合并:使用concat方法合并数组
- //数组合并
- var ary1=[22,33,44,55,66];
- var ary2=["文件","编辑","查找","调试"];
- var ary3=ary1.concat(ary2);
- console.log(ary3);//(9) [22, 33, 44, 55, 66, "文件", "编辑", "查找", "调试"]
五、Join 方法 返回一个字符串
- // 数组连接符join,返回一个字符串
- var ary4=[12,34,56,"前端","abc"];
- var ary5=ary4.join("&");
- document.write(ary5+ "<br>" +"返回的数据类型是:" + typeof(ary5))
- // 数组连接符join,返回一个字符串
- var ary1=[12,34,56,"前端","abc"];
- var ary=ary1.join("&");
- console.log(ary);//12&34&56&前端&abc
- console.log(typeof(ary));//string
数组(定义、遍历、冒泡排序、合并和Join 方法)的更多相关文章
- js二维数组定义和初始化的三种方法总结
js二维数组定义和初始化的三种方法总结 方法一:直接定义并且初始化,这种遇到数量少的情况可以用var _TheArray = [["0-1","0-2"],[& ...
- Array(数组)对象-->join() 方法
1.定义和用法 join() 方法把数组中的所有元素用指定的参数作为分隔符拼接成一个字符串. 语法: array.join(separator) 举例: var arr = [1,2,3,4,5]; ...
- 初识Javascript.03 -- switch、自增、while循环、for、break、continue、数组、遍历数组、合并数组concat
除了注意大小写,别的木啥了 Switch语句 Switch(变量){ case 1: 如果变量和1的值相同,执行该处代码 break; case 2: 如果变量和2的值相同,执行该处代码 break; ...
- js数组定义和方法 (包含ES5新增数组方法)
数组Array 1. 数组定义 一系列数据的集合成为数组.数组的元素可以为任何类型的数据(包括数组,函数等),每个元素之间用逗号隔开,数组格式:[1,2,3]. 2. 数组创建方式 (1) 字面量方法 ...
- javascript(基础)_对数组的遍历方法总结(find, findIndex, forEach,)
一.前言 ...
- Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解
Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解 一.Jquery遍历筛选数组 1.jquery grep()筛选遍历数组 $().ready( function(){ v ...
- 2016/3/20 数组定义 数组遍历 超全局数组 数组元素设置(in_array() 、array_reverse()、count()、array_unique()、unset()、array_values、array_merge、array_push) 列表实例
一.数组定义 php数组与其他语言的数组的不同: 其他例如java语言 :同一种类型数据的集合. php:数组可以存储任何类型的数据.同一个数组中可以放int类型也可以放string类型 ①索引数组的 ...
- java 数组声明定义 数组内存分配 数组初始化 数组引用 数组的遍历
一,数组的定义 Java 中定义数组的语法有两种: 1. type arrayName[]; 2. type[] arrayName;type 为Java中的任意数据类型,包括基本类型和组合类型,ar ...
- 数组中的元素 增加push用法 unshift() 方法 和减少pop() 方法 shift() 和其他位置增删 splice() 方法 join() 方法 reverse() 方法 sort() 方法
push用法 push 英 [pʊʃ] 美 [pʊʃ] vt. 推,推动; vt. 按; 推动,增加; 对…施加压力,逼迫; 说服; n. 推,决心; 大规模攻势; 矢志的追求 定义和用法 push( ...
随机推荐
- (转)为什么ssh一关闭,程序就不再运行了?
ref :https://www.cnblogs.com/lomper/p/7053694.html 问题描述 当SSH远程连接到服务器上,然后运行一个程序,eg: ./test.sh, 然后把终端开 ...
- N皇后问题的python实现
数据结构中常见的问题,最近复习到了,用python做一遍. # 检测(x,y)这个位置是否合法(不会被其他皇后攻击到) def is_attack(queue, x, y): for i in ran ...
- Java11新特性 - 标准Java异步HTTP客户端
Java9开始引入的一个处理 HTTP 请求的的 HTTP Client API,该 API 支持同步和异步,而在 Java 11 中已经为正式可用状态,你可以在 java.net 包中找到这个 AP ...
- WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口
原文:WPF 判断一个对象是否是设计时的窗口类型,而不是运行时的窗口 当我们对 Window 类型写一个附加属性的时候,在属性变更通知中我们需要判断依赖对象是否是一个窗口.但是,如果直接判断是否是 W ...
- String.Join函数
string[] str1 = { "abc", "bcd", "cde", "efg" }; string str2 ...
- RHEL6搭建网络yum源软件仓库
RHEL的更新包只对注册用户生效,所以需要自己手动改成Centos的更新包 一.查看rhel本身的yum安装包 rpm -qa | grep yum 二.卸载这些软件包 rpm -qa | grep ...
- kubernetes第十二章--监控
- iOS 13-Sign In with Apple
最近了解了iOS 13新增功能之Sign In with Apple,Sign In with Apple是跨平台的,可以支持iOS.macOS.watchOS.tvOS.JS.本文主要内容为Sign ...
- 【转载】C#中double.TryParse方法和double.Parse方法的异同之处
在C#编程过程中,double.TryParse方法和double.Parse方法都可以将字符串string转换为double类型,但两者还是有区别,最重要的区别在于double.TryParse方法 ...
- Java服务端口被占用问题
在改code的时候eclipse突然崩溃了,未响应状态等了好久也没转完,只能结束进程了,再次打开eclipse果然无法启动项目.报的错误是端口被占用. 又不想重启电脑,只能记录下微服务下的卡死清理端口 ...