博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js数组
阅读量:4614 次
发布时间:2019-06-09

本文共 2166 字,大约阅读时间需要 7 分钟。

3JavaScript数组

1. JavaScript数组简介

① 为什么需要数组

数组可以很方便的用来管理一组数据。例如:我们需要变量来存储一个星期里面的每一天。

 

<script>

    var arr=['hah','heihei','hehehe'];
</script>

 

 

② 如何创建数组

JavaScript里面,创建数组有2种:

1)通过对象来创建数组

目前因为没有讲解对象,作为了解即可

 

<script>

    var arr=new array();
</script>

 

 

2)通过特殊符号来创建数组

 

var arr= [];

 

③ 如何给数组赋值

分为两种:1)先申明,再赋值;2)申明和赋值一起

1)先申明,再赋值

 

var arr= [];

arr[0]=12;
arr[1]=13;
arr[2]=14;

 

从上面我们已经可以看到,JavaScript的数组可以动态的增加长度。

 

 2)申明和赋值一起

 

<script>

    var arr= [1,2,3,4,14];
</script>

 

 

 ④ JavaScript的数组可以放入任意数据类型

 

<script>

    var arr= [1,no,3.14,4,14];
</script>

 

 

⑤ 访问数组里面的数据

当我们要遍历数组的时候,和C语言一样,使用循环

 

<script>

    var arr= [1,no,3.14,4,14];
    for(var i=0;i<=arr.length;i++)
    {
        document.write(arr[i]+"<br>");
    }
</script>

 

效果:

 

 

2. JavaScript数组进阶(重点)

① 数组在内存中存在的形式

C语言一样,JavaScript数组的名字仍然代表数组的首地址。

地址是存储在内存里面栈区,具体的数值是存储在堆区

 

栈区:由编译器自动分配和释放,一般用来存储函数的参数值,局部变量等。

堆区:一般由程序员手动分配和释放,如果程序员不释放,那么程序结束的时候由操作系统进行回收。

全局区/静态区:全局变量和静态变量一般就是放在这个区域。全局区里面的全局变量由系统进行回收。

文字常量区:常量字符串就是放置于文字常量区。程序结束后由系统来进行释放。

程序代码区:存放函数体的二进制代码。

 

 

JS数组的动态增长

1JavaScript数组可以存放任意类型的数据

2)访问数组中元素必须通过索引,但是当你访问一个不存在的索引时,不会报错,而是返回一个undefined

 

3)如果试图赋值给一个不存在的索引值,也不会报错,而是自动扩展数组的长度。

 

<script>

    var arr= [1,no,3.14,4,14];

    Arr[8]=10;

    for(var i=0;i<=arr.length;i++)
    {
        document.write(arr[i]+"<br>");
    }
</script>

 

结论:JavaScript的数组可以动态的增长

 

3. JavaScript二维数组

 

① 二维数组的创建

JavaScript本身是不支持多维数组的,但是,由于JavaScript数组里面可以放任意类型的数据,所以我们可以模拟出二维数组

 

② 二维数组的遍历

遍历二维数组需要使用双层for循环

 

课堂练习2:二维数组的转置

<script>

//    [8,-1,9,3]
//    [7,12,-5,6]
//    [6,4,2,99]
//原数组
var arr1 = [[8,-1,9,3],[7,12,-5,6],[6,4,2,99]];
var arr2 = [];
//确定新数组有多少行——即撑开行
for(var i=0;i<arr1[0].length;i++){
        arr2[i] = [];
}
//动态添加数据   遍历原数组
for(var i=0;i<arr1.length;i++){
for(var j=0;j<arr1[i].length;j++){
            arr2[j][i] = arr1[i][j];
}
    }
//打印新数组
for(var i=0;i<arr2.length;i++){
for(var j=0;j<arr2[i].length;j++){
            document.write(arr2[i][j]);
}
        document.write("<br />");
}
</script>

 

4. 数组排序

数组排序的方法很多,这里主要介绍一下冒泡和选择排序

1)冒泡

所谓冒泡,就是两个相邻的数字不停的比较。冒完一次泡,就会有一个最大的或者最小的数字会移动到最后,再冒一次泡,倒数第二大或者倒数第二小的数又会移动到倒数第二位。

 

 

2)选择排序

选择排序的核心思想就是拿一个数和数组里面的所有的数进行比较。直到该数在该数组中的正确位置

 

 

 

5. 数组相关属性和方法

1length属性

获取到数组的长度

语法:数组名.length  

 

 

2split():用于把一个字符串分割成字符串数组

split()里面填写"分割字符",分割字符不会被计入到数组

 

 

3)反转数组

reverse():將一个数组里面的元素全部反转过来

 

转载于:https://www.cnblogs.com/zy9731/p/7400264.html

你可能感兴趣的文章
所谓输入掩码技术,即只有数字键起作用
查看>>
Display对象,Displayable对象
查看>>
安装oracle11G,10G时都会出现:注册ocx时出现OLE初始化错误或ocx装载错误对话框
查看>>
数据结构(并查集):COGS 260. [NOI2002] 银河英雄传说
查看>>
生产环境下正则的应用实例(一)
查看>>
在CentOS7命令行模式下安装虚拟机
查看>>
Arduino可穿戴开发入门教程Arduino开发环境介绍
查看>>
Windows平台flex+gcc词法分析实验工具包
查看>>
3.Python基础 序列sequence
查看>>
Chapter 4 Syntax Analysis
查看>>
nginx的配置:目的是使用nginx反向代理后,应用程序获取用户真实ip
查看>>
3、变量+运算符+Scanner
查看>>
10、数组、二维数组
查看>>
eclipse查看源码的配置
查看>>
mysql的卸载重装+导入大量数据失败的解决方案+工具执行和项目执行结果不同
查看>>
针对发送网络附件的java方法(使用Apache的jar包调用)
查看>>
‘--’之后的所有字符串,正则怎么写
查看>>
sql把一个字段中的特定字符替换成其他字符
查看>>
SQLServer触发器的使用
查看>>
通过AI识图判断图片是否为小票
查看>>