吃饭用的前端

JS语法基础(四)之数组

2019-03-30  本文已影响0人  CNLISIYIII

数组:使用一个变量来管理多个(一组)数据,方便维护和操作。

数组是一组有序的(数组的编号有序)数据的集合

有序:数据在数组中是有编号的,这个编号(下标、索引)是有序的,从0开始。未来利用索引来操作数组。


1.数组的创建

1)通过构造函数

语法:

var 变量名 = new Array();   

var 变量名 = new Array(数据, 数据, 数据, 数据);

代码举栗:

var nums = new Array();  //空的数组。里面没有数据。

var nums = new Array(1000,1001,1002,1003);    //里面有数据。

2)数组字面量(推荐使用)

语法:

var 变量名 = [];     

代码举栗:

var nums = [];    //数组字面量,简写格式。底层还是new Array();

var nums = [1000,1001,1002,1003];

2.数组的操作

在js中数组内可以放任何不同类型的数据,但是在使用时一般存放同类型的数据。

1)获取数组中的某一个数据(利用索引)

语法:数组名[索引号]

代码举栗:

var userNames = ['张三','李四','王五','赵六'];

// 获取李四

console.log(userNames[1]); // 李四

console.log(userNames[4]); // undefined

2)设置数组中的某一个数据(利用索引)

语法:数组[索引号] = 数据;

代码举栗:

var userNames = ['张三','李四','王五','赵六'];

// 修改李四 为 LiSi

userNames[1] = 'LiSi';

console.log(userNames); // ['张三','LiSi','王五','赵六']

3)遍历数组

(遍历即循环。)

获取数组的长度:(数组中数据的个数)

语法:数组名.length

代码举栗:

//若从头开始遍历数组,开始的位置一定是0。因为索引是从0开始的。

var nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];

for (var i = 0; i < nums.length; i++) {     // i就是索引

document.write('<h2>' + nums[i] + '</h2>');

}

4)length

设定数组的长度:

语法:数组名.length = 数字;

若设置的长度小于原有的长度时,会自动删除后面多余的数据。

若设置的长度大于原有的长度时,会自动增加空的(undefined)数据。

代码举栗:

var userNames = ['张三','李四','王五','赵六'];

userNames.length = 6; // 因为数组长度为6,所以新增了两个空间

清空数组:数组名 = [];   或   数组名.length = 0;

如果索引溢出(即超出原有的最大索引),在此不会报错,而是返回一个undefined。

给数组末尾添加新的数据:

数组名[最后的索引数+1] = "数据";  相当于 数组名[数组名.length] = "数据"; 

若在最后添加数据,数组的长度会自动变化。

3.冒泡排序

规律:总共要比较多少趟,数组的长度-1;每趟比较的次数,数组的长度-当前趟数。

原理:重复比较相邻的两个数字

代码举栗:(从小到大)

var t;

        var num = [2,1,4,6,5,3,8,7,9,10];

        for(var i = 0; i < num.length; i++) {

            for(var j = 0; j < num.length-i-1; j++) {

                if(num[j] < num[j+1]) {

                    t = num[j+1];

                    num[j+1] = num[j];

                    num[j] = t;

                }

            }

            document.write(num[j] + " ");

        }

function minToMax(arr) {

            var temp;

            document.write("From min to max: ");

            for(var i = 0; i < arr.length; i++) {

                for(var j = 0; j < arr.length-1-i; j++) {

                    if(arr[j] > arr[j+1]) {

                        temp = arr[j+1];

                        arr[j+1] = arr[j];

                        arr[j] = temp;

                    }

                }

            }

            document.write(arr);

        }

上一篇 下一篇

猜你喜欢

热点阅读