数组、数组方法以及数组排序

数组对象

数组的作用是:使用单独的变量名来存储一些列的值,数组可以存储任意数据类型的数据。

创建数组

数组有两种创建方式

第一种字面量的方式

var arr = [1,'2',true,{},[]];

 第二种 关键字的方式

//无元素的空数组

var arr = new Array();

//有元素的数组

var arr = new Array(1,2,3,4);

//如果只有一个参数代表数组的长度

var arr = new Array(5)//代表数组长度为5

 遍历数组

用for循环遍历数组,数组由下标控制,从0开始

arr:数组名称

arr.length:数组长度

arr[i]:数组内第i个元素

//打印数组内的所以元素

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

console.log(arr[i])

}

数组的读写

数据既可以被读也可以被写,通过下标实现

arr[1]='第二个元素'//向数组内写入数据

console.log('arr[1]')//在控制台打印第二个元素

循环100个数到数组内

var arr =[]

for(var i = 1;i<=100;i++){

arr[i-1] = i

}

数组方法

栈方法

在数组结尾操作,会改变原来的数组

添加元素

语法

arr.push('要添加的内容')//从数组最后添加

删除元素

语法

arr.pop()//从最后一个开始删

队列方法

和栈方法完全相反,在数组头部进行操作

添加元素

语法

arr.unshift('要添加的内容')//在数组头部添加

删除元素

语法

arr.shift()//从数组头部开始删

splice()删除、添加、替换

splice()非常强大 可以对数组进行添加、删除、替换

语法

 数组.splice(开始位置,删除的项数,插入的元素)

开始位置:是一个数值类型的number,这个位置是以下标定义的。

删除的项数:删除几项,是一个数值类型的number。

插入的元素:可以是任意多个参数

删除

可以删除任意项只需指定两个参数:开始位置和删除的项数

例子

arr.splice(1,3)//从第一项开始 删除三个元素

添加

可以向指定的位置插入任意数量的项,只需要提供三个参数:起始位置 要删除的项(0)和要插入的项,如果是插入多个项,可以在传入任意多个。

例子
arr.splice(2,0,'12','34');

排序

选择排序

从第一项起,每一项都和后面所有的项依次比较,如果前面的项大于后面的项,则调换位置,否则,位置不变,接着向后比较

代码

/* 
使用for循环 拿到第一个元素 9 之后

接下来,应该从第二个元素开始,也就是 8

然后 9 和 8 比较  因为 9 > 8  调换位置 [8,9,7,4]
然后在拿 7 和第一项 比较  8 > 7 [7,9,8,4]
然后在拿 4 和第一项 比较  7 > 4 [4,9,8,7] 
*/

for (var i = 0; i < arr.length; i++) {
    for (var j = i + 1; j < arr.length; j++) {
        if (arr[i] > arr[j]) {
            var num = arr[i];
            arr[i] = arr[j]
            arr[j] = num;
        }
    }
}
console.log(arr);

冒泡排序

数组中的相邻的两个元素进行比较,如果前一项大于后一项,交换位置,否则不变

注意:每一次排序,参与排序的数中,最大的一定是在最右边的,也就是,每一次少一个数排序

var arr = [5, 8, 7, 4,1];

for (var i = 0; i < arr.length; i++) { // 轮 
    for (var j = 0; j < arr.length; j++) { // 次 
        if (arr[j] > arr[j + 1]) {
            var num = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = num;
        }
    }
}

sort()排序方法

sort()是给数组排序的,默认是升序排列,调用的是tpString(),然后比较得到的字符串,用来确定如何排序,默认是按字符串的升序排列。

语法

数组.sort()

var arr = [6, 1, 3, 9, 4, 8];
console.log(arr.sort());

// 默认排序的是第一位
var arr1 = [6, 1, 3, 9, 4, 8,10];
console.log(arr1.sort());

sort自定义排序

sort()可以接受一个比较的函数作为参数,以便于我们指定哪个值在前面

这个函数有两个参数,这两个参数做减法运算,如果返回的是一个正数,说明第一个值大于第二个值

如果返回的是负数,第二个值大于第一个值

如果返回的是0,两个值相等

语法

数组.sort(function( 参数1,参数2){
  // 代码块
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值