JavaScript内建对象 (一) ----- Array

1 数组的定义方式


var arr1 = new Array();
var arr2 = new Array(1, 2, 3, 4);
// 创建一个长度为10的数组,每个元素默认为undefined
var arr3 = new Array(10); 
var arr4 = [1, 2, 3, 4, 8, 9];

2 数组的基本用法


2.1 添加元素

arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;

2.2 获取与修改数组长度

获取长度:
 	arr.length 等于 数组最大索引 + 1

修改长度:
	arr.length = 2;
    那么多余的元素会被删除

2.3 向数组尾部添加元素

arr[arr.length] = 8;

3 常用方法


3.1 概览

方法解释
push()尾插
pop()弹出最后一个元素
unshift()头插
shift()删除首个元素
slice()提取区间子数组
splice()删除起始下标后的指定元素个数
concat()连接数组
join()数组转字符串
reverse()翻转数组
sort()排序

3.2 详解

3.2.1 push()
说明:该方法可以向原数组末尾添加一个或多个元素并返回数组新的长度
例子:
    var len = arr.push(4, 5, 6, 7);
3.2.2 pop()
说明:删除并返回数组最后一个元素
例子:
    var n = arr.pop();
3.2.3 unshift()
说明:向数组的开头添加一个或多个元素并返回数组新的长度
例子:
    arr.unshift(1, 2, 3, 4);
3.2.4 shift()
说明:删除并返回数组的头部元素
例子:
	var n = arr.shift();
3.2.5 slice()
说明:1. 传入 start, end 下标提取原数组在该区间内的元素返回一个新的数组,不会影响原数组
     2. 第二个参数可以省略不写,那么默认为从 start 到 数组尾部
     3. 参数可以传入负值,表示从后往前数,传入 -1 就表示数组末尾开始的前一位 

例子:
    var arr = [1, 2, 4, 5, 6, 0];
    var newArr1 = arr.slice(3, arr.length - 1);
    var newArr2 = arr.slice(3, -1); 下标 3 开始到数组倒数第二个元素 
3.2.6 splice()
说明:传入 start 和 n 从原数组中删除起始下标后对应数量的元素,并返回删除的元素数组,并且可以从删除的位置后面依次添加新的元素
    start: 起始下标
    n: 删除元素的个数
    第三个参数及以后...: 表示从start下标位置添加的新元素

例子:
    var arr = [1, 2, 3, 4];
    var deletedElements = arr.splice(2, 3);


    var arr = [0, 2, 7, 9, 10];
    arr.splice(1, 3, "a", "b", "c");
    console.log(arr); // [ 0, 'a', 'b', 'c', 10 ]
3.2.7 concat()
说明:连接两个或者多个数组返回一个新数组,不会对原数组产生影响
例子:
    var arr1 = [1, 3, 5, 7, 9];
    var arr2 = [2, 3, 4, 5, 6];
    var arr3 = ["hahahahah", "xixixixixii"];
    var newArr = arr1.concat(arr2, arr3); // [1, 3, 5, 7, 9, 2, 3, 4, 5, 6, "hahahahah", "xixixixixii"]
3.2.8 join()
说明:将数组转换为一个字符串,可以传入一个字符串指定为数组中元素之间的连接符,默认为 ‘,'
例子:
    var arr = [1, 2, 3, "bili"];
    var str1 = arr.join(); // 1,2,3,bili
    var str2 = arr.join("-"); // 1-2-3-bili
3.2.9 reverse()
说明:直接在原数组中颠倒元素的排列次序
例子:
    var arr = [1, 2, 3];
    arr.reverse(); // [3, 2, 1]
3.2.10 sort()
说明:直接对原数组中的元素按照Unicode编码进行排序
注意:如果是数字的话也会按照Unicode编码排序,那么可能会得到错误的结果
例子:
    var arr1 = ["c", "d", "e", "a", "f"];
    arr1.sort(); // [ 'a', 'c', 'd', 'e', 'f' ]

    var arr2 = [1, 2, 33, 11, 0, 1];
    arr2.sort(); // 排序有错:[ 0, 1, 1, 11, 2, 33 ]

    我们可以在sort参数中指定一个回调函数来定制排序规则:
        (1) 回调函数需要两个形参:a, b
        (2) 浏览器会分别使用数组中的元素传入回调函数,使用哪些元素并不确定,但是 a 元素一定在 b元素前面
        (3) 回调函数返回值 > 0,则会交换 a 元素与 b 元素在原数组中的位置
            回调函数返回值 < 0,则会交换保持 a 元素位置与 b 元素位置不变
            回调函数返回值 = 0,则表示 a 元素与 b 元素值相等


        // 数值数组升序排列
        arr.sort(function(a, b) {
            return a - b;
        });

        // 数值数组降序排列
        arr.sort(function(a, b) {
            return b - a;
        });

4 forEach()


  1. 作用:可以用来遍历数组

  2. 需要传入一个函数对象,通常直接使用匿名函数

  3. 这种由我们创建,而不由我们调用的称为回调函数,通常由浏览器自己调用

  4. 数组中有几个元素,该方法就会执行几次,每次执行时,浏览器会传入三个实参到匿名函数中
    第一个参数:数组中的元素
    第二个参数:元素对应的下标
    第三个参数:数组对象本身

    arr.forEach(
        function(element, index, arr) {
            console.log(element);
        }
    );
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值