1:数组
定义:数组是一个可以存储一组或一系列相关数据的容器。
为什么要使用数组?
1:为了解决大量相关数据的存储和使用的问题。
2:模拟真实的世界(班级、军队)。
2:创建数组
1:通过构造函数的方式来创建。var a=new Array();
1.直接赋值
var a=new Array(数据1,数据2,…);
--------------------------------------------------------------
var a=new Array(数值)
如果括号中只有一个元素,并且这个元素是数值类型的,那么他就是指定数组的长度。并且它的值都是undefined。
数组的属性:length 属性(获取整个数组的长度)。
2.声明以后再赋值
var a=new Array(); a[0]=1; a[1]=2; a[2]=3;
2:隐形声明的方式。var a=[];
1.直接赋值:
var a=[1,2,3,4];
2.声明以后再赋值:
var a=[]; a[0]=1; a[1]=2; a[2]=3;
JS数组可以存储任何类型的值。
3:访问数组
通过数组的(中括号)下标访问。
数组下标从0开始,他的最大值,是length-1。有8个元素的话,则长度是8,如果要访问最后一个元素,则访问7。因为下标从0开始,01234567。
4:遍历数组
1:for循环。
2:while循环。
3:for in循环。
for in的作用:
1:用于数组的遍历。
2:用于对象属性的遍历。
5:数组分类
1:按照下标的类型
1.下标是数字的类型叫做(索引数组)
2.下标是字符串类型叫做(关联数组),必须通过对象模拟的形式才能实现,一般不用。
2:按照维度来分类
1.一维数组
2.二维数组,通过对象模拟的形式才能实现。
声明二维数组:
vararr=[[1,2,3],[4,5,6]]; alert(arr[1][1]);
应用:
1:山上有一口缸可以装50升水,现在有15升水。老和尚叫小和尚下山挑水,每次可以挑5升。问:小和尚要挑几次水才可以把水缸挑满?通过编程解决这个问题。
2:定义一个含有30个整型元素的数组,按顺序分别赋予从2开始的偶数;然后按顺序每五个数求出一个平均值,放在另一个数组中并输出。试编程。
3:通过循环按行顺序为一个5×5的二维数组a赋1到25的自然数,然后输出该数组的左下半三角。试编程。
1:数组属性
1.length
设置或返回数组元素的数目。
2.constructor
返回构造函数的引用。
2:数组方法
1. arr.push(数组元素......) 参数之间要用逗号隔开。
向数组的末尾添加新的元素,返回值是新数组的长度。
可以一次添加多个元素。
2.arr.unshift(数组元素.....)
向数组的开头加入新的元素,返回值是新数组的长度。
可以一次添加多个元素。
3. arr.pop()
删除数组的最后一个元素,返回删除的元素。
4. arr.shift()
删除数组的第一个元素,返回删除的元素。
5.万能的添加删除函数
arr.splice(index,数量,添加的元素.....) 前俩个元素必须有
(1)index 从何处开始添加或删除,必须是数值类型(数组的下标)
(2)数量规定了删除的个数,如果是0,则不删除。
(3)需要添加的元素,可以当作替换的元素。
如果有删除的元素,返回删除的元素。
6.str.split(分隔符)
将字符串分割为数组。
7.arr.join([分隔符])
把数组元素按照指定分隔符组合成一个字符串,如果没有指定分隔符,默认是用“,”分割,返回结果就是组合成的字符串。
8.arr.slice()
数组的分割。
从截取指定的开始位置,到结束位置(不包括)的元素。如果不指定结束位置,则从指定的开始位置,取到结尾(数组的下标)。
支持负数(-1开头) 返回的是新数组。不改动原来的数组。
9.at()
连接两个或更多的数组,并返回新数组,对原数组没有任何影响。
10.verse()
数组翻转方法。改变原数组
11.arr.sort()
对数组进行排序,如果没有参数,则按照字母的编码进行排序,如果要按照其他的顺序来排序,要提供一个函数。
回调函数会提供两个参数(a,b)。javascript全局数组
a<b a在b前。
a=b 顺序按照原样输出。
a>b b在a前。
默认排序例子:
['d', 'c', 'b', 'a'].sort()
// ['a', 'b', 'c', 'd']
[4, 3, 2, 1].sort()
// [1, 2, 3, 4]
[11, 101].sort()
// [101, 11]
[10111, 1101, 111].sort()
// [10111, 1101, 111]
如果想让sort方法按照自定义方式排序,可以传入一个函数作为参数,表示按照自定义方法进行排序。该函数本身接受两个参数,表示进行比较的两个元素。如果返回值大于0,表示第一个元素排在第二个元素后面;其他情况下,都是第一个元素排在第二个元素前面。
[10111, 1101, 111].sort(function (a, b) {
return a - b;
}) // [111, 1101, 10111]
[ { name: "张三", age: 30 }, { name: "李四", age: 24 }, { name: "王五", age: 28 } ].sort(function (o1, o2) {
return o1.age - o2.age;
}) // [ { name: "李四", age: 24 }, { name: "王五", age: 28 }, { name: "张三", age: 30 } ]
3:排序算法
1:冒泡排序
思路分析:在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论