js-数组

数组的概念
数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的方式。

//普通变量一次只能存储一个值
var num = 10;
//数组一次可以存储多个值
var arr = [1,2,3,4,5];

数组的创建方式
js中创建数组有俩种方式:
● 利用new创建数组
● 利用数组字面量创建数组

利用new创建数组

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

注意:Array,A要大写

利用数组字面量创建数组(使用最多的方式)

//1、使用数组字面量方式创建空的数组
var 数组名 = [];
//2、使用数组字面量方式创建带初始值的数组,数组里面的数据,称为数组元素
var 数组名 = ['小白','小黑',‘大黄’,‘瑞奇’];

注意:数组里面的数据一定要用逗号分隔。

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

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

获取数组元素
1、数组的索引
获取数组元素,格式 数组名[索引号],索引号从0开始

var arr = [1,2,'pink老师',true];
console.log(arr[2]);

遍历数组
遍历:把数组中的每个元素从头到尾都访问一次。

//遍历数组:就是把数组的元素从头到尾访问一次
 var arr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'];
        for (var i = 0; i < 7; i++) {
            console.log(arr[i]);
        }
//因为数组索引号从0开始,所以i必须从0开始,由此i=0、i < 3,不能是i<=3;
//输出的时候arr[i] i计数器当索引号来用

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

 var arr = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'];
 for (var i = 0; i < arr.length; i++) {
      console.log(arr[i]);
  }

注意:
● 数组的长度是元素个数 不要跟索引号混淆
● arr.length动态监测数组元素的个数

数组中新增元素
1、可以通过修改length长度以及索引号增加数组元素,length元素是可读写的
2、可以通过修改数组索引的方式追加数组元素

<script>
	//1、新增数组元素  修改length长度
        var arr = ['red', 'grenn', 'blue']
        console.log(arr.length);
        arr.length = 5;
        console.log(arr);
        console.log(arr[3]); //undefined
        console.log(arr[4]); //undefined
    //2、新增数组元素  修改索引号  追加数组元素
        var arr1 = ['red', 'green', 'blue']
        arr1[3] = 'pink';
        console.log(arr1[3]); //pink
        arr1[0] = 'yellow'; //这里是替换元素 会将red替换为yellow
        console.log(arr1);
  </script>

注意:不能直接给数组名赋值,否则会覆盖掉以前的数据
小案例:
1、新建一个数组,里面存放10个整数(1~10)

 var arr2 = [];
        for (var i = 0; i < 10; i++) {
            arr2[i] = i + 1;
        }
        console.log(arr2);

2、将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新数组

<script>
	//方案一
        var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        var j = 0;
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > 10) {
                newArr[j] = arr[i];
                j++;
            }
        }
        console.log(newArr);
    </script>
    <script>
    	//方案二
       var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] > 10) {
                newArr[newArr.length] = arr[i];
            }
        }
        console.log(newArr);
    </script>

3、将数组[2,0,6,1,77,0,52,0,25,7]中的0去掉后,形成一个不包含0的新数组

<script>
	var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var newArr = [];
        for (var i = 0; i < arr.length; i++) {
            if (arr[i] != 0) {
                newArr[newArr.length] = arr[i];
            }
        }
        console.log(newArr);
</script>

4、数组翻转

<script>
var arr = [1, 2, 3, 4, 5, 6];
        var newArr = [];
        for (var i = arr.length - 1; i >= 0; i--) {
            newArr[newArr.length] = arr[i];
        }
        console.log(newArr);
</script>

执行思路:
● 声明一个新数组newArr;
● 取旧数组最后一个索引号,由于索引号是由0开始的,因此最后一个索引号为(arr.length - 1),给新数组索引号第0个元素(newArr.length)
● 采取递减方式 i–
6、交换变量

<script>
        var num1 = 10;
        var num2 = 20;
        var temp;
        temp = num1;
        num1 = num2;
        num2 = temp;
        console.log(num1, num2);
    </script>

7、数组排序(冒泡排序)
冒泡排序:是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或从大到小)
核心原理:重复走访要排序的数列,一次比较俩个元素,如果顺序错误则交换过来。

<script>
//冒泡排序
        var arr = [5, 6, 7, 4, 2, 3, 1, 8, 9];
        for (var i = 0; i <= arr.length - 1; i++) {
            for (var j = 0; j <= arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    var temp;
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        console.log(arr);
</script>

8、去重

<script>
 var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6];
        var newArr = [];
        for (var i = 0; i <= arr.length; i++) {
            if (arr[i] != arr[i + 1]) {
                newArr[newArr.length] = arr[i];
            }
        }
        console.log(newArr);
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值