8、javascript数组

8、数组

1.数组的概念

​ 数组(Array)是指一组数据的集合,将一组数据的集合存储在单个变量下,其中的每个数据被称作元素,数组中可以存放任意类型的元素。

2.创建数组

JS 两种创建数组方式:

(1)利用 new 创建数组

var 数组名 = new Array()var arr = new Array();   // 创建一个新的空数组

(2)利用数组字面量创建数组

//1. 创建空的数组
var  数组名 = []//2. 创建带初始值的数组
var  数组名 = ['小白','小黑','大黄','瑞奇'];
  • 数组的字面量是方括号 [ ]

  • 数组初始化:声明数组并赋

  • 数组中可以存放任意类型的数据,例如字符串,数字,布尔值等。

    var arrStus = ['小白',12,true,28.9];
    

3.获取数组中的元素

​ 索引 (下标) :用来访问数组元素的序号(数组下标从 0 开始)

​ 数组可以通过索引来访问、设置、修改对应的数组元素

​ 通过“数组名[索引]”的形式来获取数组中的元素

// 定义数组
var arrStus = [1,2,3];
// 获取数组中的第2个元素
alert(arrStus[1]);    

​ 注意:如果访问时数组没有和索引值对应的元素,则得到的值是undefined

4.遍历数组

​ 把数组中的每个元素从头到尾都访问一次(类似学生的点名),可以通过 for 循环索引遍历数组中的每一项

var arr = ['red','green', 'blue'];
  // 索引号从 0 开始,因此 i 也从 0 开始
for(var i = 0; i < arr.length; i++){
    // i 计数器当索引号来用
    console.log(arrStus[i]);  
}

5.数组的长度

数组的长度:默认情况下表示数组中元素的个数

使用“数组名.length”可以访问数组元素的数量(数组长度)。

var arrStus = [1,2,3];
alert(arrStus.length);  // 3

注意

  • 数组长度动态监测数组元素的个数,与索引号无关
  • 数组元素个数发生变化,length 属性跟着一起变化
  • 数组的length属性可以被修改
  • 如果设置的length属性值大于数组的元素个数,则会在数组末尾出现空白元素
  • 如果设置的length属性值小于数组的元素个数,则会把超过该值的数组元素删除
// 数组案例
// 1.求数组 [2,6,1,7, 4] 里面所有元素的和以及平均值
        var arr3 = [2, 6, 1, 7, 4];
        var num = 0;
        var average = 0;
        for (var i = 0; i < arr3.length; i++) {
            num += arr3[i]; // 加的是数组元素,而不是计数器
        }
        average = num / arr3.length;
        console.log(num, average); // 输出多个变量用逗号隔开即可
// 2.求数组[2,6,1,77,52,25,7]中的最大值
        var arr4 = [2, 6, 1, 77, 52, 25, 7];
        var max = arr4[0];
        for (var i = 1; i < arr4.length; i++) {
            if (arr4[i] > max) {
                max = arr4[i];
            }
        }
        console.log('该数组里面的最大值是:' + max);
// 3.将数组 ['red', 'green', 'blue', 'pink'] 转换为字符串,并且用 | 或其他符号分割
        var arr5 = ['red', 'green', 'blue', 'pink'];
        var num2 = '';
        var sep = '|';
        for (var i = 0; i < arr5.length; i++) {
            num2 += arr5[i] + sep;
        }
        console.log(num2);

6.数组中新增元素

​ (1)改变length长度

  数组[ 数组.length ] = 新数据;
 var arr6 = [1, 2, 3, 4];
        console.log(arr6.length);
        arr6.length = 6;
        // 这里将数组长度修改为了6
        console.log(arr6);

(2)修改索引号,追加数组元素

 var arr7 = ['red', 'green', 'blue'];
        arr7[3] = 'yellow'; // 新增数组
        arr7[0] = 'yellow'; // 替换数组
        console.log(arr7);
        arr7 = '直接给数组赋值,里面之前存的数组元素会被替代';
        console.log(arr7);

7.筛选数组

// 将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于等于 10 的元素选出来,放入新数组
        var arr9 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
     // newArr.length可以自动检测数组长度,刚开始newArr.length是0
        for (var i = 0; i < arr9.length; i++) {
            if (arr9[i] >= 10) {
                newArr[newArr.length] = arr9[i];
            }
        }
        console.log(newArr);

8.数组去重

// 将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 0 去掉后,形成一个不包含 0 的新数组
        var arr10 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr1 = [];
        for (var i = 0; i < arr10.length; i++) {
            if (arr10[i] !== 0) {
                newArr1[newArr1.length] = arr10[i];
            }
        }
        console.log(newArr1);

7.翻转数组

// 将数组 ['red', 'green', 'blue', 'pink', 'purple'] 的内容反过来存放
        var arr11 = ['red', 'green', 'blue', 'pink', 'purple'];
        var newArr2 = [];
        for (var i = arr11.length - 1; i >= 0; i--) {
            newArr2[newArr2.length] = arr11[i];
        }
        console.log(newArr2);

8.数组排序(冒泡排序)

//数组排序(冒泡排序):依次比较两个元素,如果顺序错误就交换过来
        var arr12 = [4, 1, 2, 3, 5];
        for (var i = 0; i < arr12.length - 1; i++) { 
         // 外层循环管趟数
            for (var j = 0; j < arr12.length - i - 1; j++) {             // 里层循环管每一趟的次数
                if (arr12[j] > arr12[j + 1]) {
                    var temp = arr12[j];
                    arr12[j] = arr12[j + 1];
                    arr12[j + 1] = temp;
                }
            }
        }
        console.log(arr12);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值