数组介绍及应用

数组(Array)

数组是指一组数据的集合

数组是一种将一组数据存储在单个变量名下的优雅方式。

赋值一个随机数:Math.random()

伪数组

并不是真正意义上的数组
// 1.具有数组的 length 属性
// 2.按照索引的方式进行存储的
// 3.它没有真正数组的一些方法  pop() push() 等等

创建数组

JS中创建数组有两种方式:
利用 new 创建数组:
var arr = new Array();  //创建了一个空的数组

利用 数组字面量 创建数组(常用):
var arr = [];  // 创建了一个空的数组
var arr1 = [1,2,'pink',true ]
我们数组里面的数据一定要用逗号隔开
数组里面的数据  比如1,2  我们称为数组元素

数组元素的类型

数组中可以存放任意类型的数据,例如字符串,数字,布尔值等。
var arrstus = [ "小白'’,12,true , 28.9];

获取数组元素

1数组的索引
索引(下标)∶用来访问数组元素的序号(数组下标从0开始)。
例如:
vararr =[小白','小黑','大黄','瑞奇];
 索引号∶   0     1      2      3 
数组可以通过索引来访问、设置、修改对应的数组元素,我们可以通过“数组名[索引]”的形式来获取数组中的元素。
这里的访问就是获取得到的意思
var arr = []; // 创建了一个空的数组
var arr1 = [1, 2, 'pink', true]
// 3.我们数组里面的数据一定要用逗号隔开
// 4.数组里面的数据  比如1,2  我们称为数组元素
// 5.获取数组元素  格式 数组名[索引号]
console.log(arr1);
console.log(arr1[3])

遍历数组

遍历就是把数组中的每个元素从头到尾都访问一次(类似我们每天早上学生的点名)。
遍历 数组 就是把数组的元素从头到尾访问一次
        var arr = ['red', 'blue', 'green']
        for (var i = 0; i < 3; i++) {
            console.log(arr[i]);
        }
1.因为我们的数组索引号从e开始,所以i 必须从日开始i < 3
2.输出的时候arr[i]  i计数器当索引号来用

数组的长度--length属性,不仅是只读的,也可以设置

使用“数组名.length”可以访问数组元素的数量(数组长度)。
console.log(arr1.length);
var arr1 = ['关羽', '张飞', '马超', '赵云', '黄忠', '刘备', '姜维']
for (var j = 0; j < arr1.length; j++) {
    console.log(arr1[j]);
}
//1. 数组的尝试元素个数   不要跟索引号混淆
//2. arr.length  动态监测数组元素的个数

数组中新增元素

1.可以通过修改length长度增加数组元素
可以通过修改length长度来实现数组扩容的目的
length属性是可读写的
代码:
var arr = ['red', 'green', 'blue'];
console.log(arr.length);
arr.length = 5; // 把我们数组的长度修改为了5  里面应该有5个元素
console.log(arr[3]);

2.索引号增加数组元素(常用)
可以通过修改数组索引的方式追加数组元素
不能直接给数组名赋值,否则会覆盖掉以前的数据
代码:
var arr1 = ['red', 'green', 'blue'];
arr1[3] = 'hot'
console.log(arr1);
arr1[4] = 'foot'
console.log(arr1);
arr1[0] = 'yellow'  //这里时替换了原来的数组元素
console.log(arr1);
arr1 = '有点意思'  //不要直接给 数组名辅助 否则里面的数组元素都没有了
console.log(arr1);

数组去重

将数组[2,0,6,1,77,0,52,0,25,7]中的日去掉后,形成一个不包含日的新数组。
1、需要一个新数组用于存放锦筛选之后的数据。
2、遍历原来的数组,把不是0的数据添加到新数组里面(此用数组名+索引的格式接收数据)。
3、新数组里面的个数,用length不断累加。

var arr = [2, 0, 6, 1, 77, 0, 52, 25, 7]
var newArr = [];

for (var i = 0; i < arr.length; i++) {
    if (arr[i] != 0) {
        newArr[newArr.length] = arr[i]
    }

}
console.log(newArr);

翻转数组

将数组['red', 'green', "blue', "pink" , "purple']的内容反过来存放
1、声明一个新数组newArr
2、把旧数组索引号第4个取过来(arr.length - 1),给新数组索引号第0个元素(newArr.length)
3、我们采取递减的方式i--

var arr = ['red', 'green', 'blue', 'pink', 'purple']
var newArr = [];
for (var i = arr.length - 1; i >= 0; i--) {
newArr[newArr.length] = arr[i]
}
console.log(newArr);

reverse

var arr = [ 'a', 'b','c', 'd']
arr.reverse()//反转将数组元素全倒过来
会影响之前的数  没有参数   返回值为倒转过来的数组
strArr  和 arr  俩个其实指向的是一个   变量所以操作 strArn会影响arr   
操作  arr  也会影响  strArr

sort :*重点

arr.sort()//排序  重点  默认为从小到大   默认排序方式是根据ascii码
                            如果是数值会自动转换为string只取第一位


//指定比较的方法进行比较
arr1.sort(function(a,b){
    return a-b //返回的是11就是正序 a-b -1就是倒序 b-a
})
console.log( arr1);
var numArr = arr1.sort(function(a,b){
    return b-a//返回的是11就是正序 a-b -1就是倒序b-a})
console.log(arr1);
console.log(numArr);                    

sort方法默认(无参的方式)按照ascii码进行比较对应的顺序为从小到大返回值为排序好的数组
里面可以指定参数参数是一个function     这个里面有俩个参数    a b 如果是返回为 a-b  为  1      就是正序   相反  如果返回   b-a  就是  -1  那就是  倒序

添加删除数组元素方法

push 添加到末尾
pop 删除末尾
shift 删除开头
unshift 添加到开头
reverse反转
sort排序
concat合并
slice截取
join 连接成字符串
splice 删除
indexOf 正序查找下标
lastIndexOf反序查找下标

冒泡排序

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来
代码:
var arr = [5, 3, 2, 1, 4]

for (var i = 0; i <= arr.length - 1; i++) { //外层循环管趟数
    for (var j = 0; j <= arr.length - i - 1; j++) { //里层循环管 每一趟的交换次数
        // 内部交换2个变量的值 前一个和后一个数组元素相比较
        if (arr[j] < arr[j + 1]) {    // 如果arr[j] < arr[j + 1]  是小于 那么就是从大                                            到小 排序;如果arr[j] > arr[j + 1] 是大于                                           那么就是从小到大排列
            var temp = arr[j]
            arr[j] = arr[j + 1]
            arr[j + 1] = temp
        }
    }
}
console.log(arr);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值