js基础知识(十七)--数组的方法

一、数组的四个方法
push():用来向数组的最后添加一个或多个元素,会返回新的长度
pop():从数组的最后删除最后一个元素,并返回被删除的元素
unshift():从数组的前边添加一个或多个元素,并返回新的长度
shift():删除并返回数组的第一个元素

let arr = ['孙悟空', '猪八戒', '唐僧', '沙和尚', '蜘蛛精'];
arr.push('白骨精');
arr.push('蝎子精', '玉兔精');
arr.pop();//删除掉玉兔
arr.unshift('二郎神', '哪吒');
arr.shift();//删二郎神
console.log(arr);

二、数组的方法
slice():用来截取数组,是一个非破坏性的方法
参数:
1.截取的起始位置索引(包含起始位置)
2.截取的结束位置索引(不包含结束位置)
该方法不会影响到原来的数组,而是将结果将返回值返回;
可以省略第二个参数,如果不写第二个参数,则会一直截取到最后;
索引可以传负值,-1表示倒数第一个,-2表示倒数第二个,依次类推

splice():可以用来删除,替换,添加数组中的元素,是一个破坏性的方法,该方法会对原数组产生影响
参数:
1.删除元素起始位置索引
2.删除的数量
3.可以传递多个参数,这些参数将会作为新元素,添加到数组中
返回值:就是被删除的元素

    let result = arr.slice(1, 3);//删除指定元素
    console.log(arr);//还是原来的值
    console.log(result);
    result = arr.splice(0, 2, 'qqq', 'wwww');//向指定位置插入新元素
    console.log(arr);

练习:
定义一个函数,将perArr中所有成年人筛选到一个新的数组并返回

    function Person(name, age) {
        this.name = name;
        this.age = age;
    }
    let p1 = new Person('swk', 8);
    let p2 = new Person('zbj', 28);
    let p3 = new Person('aaa', 38);
    let p4 = new Person('bbb', 48);
    let p5 = new Person('ccc', 58);
    let p6 = new Person('ddd', 68);
    let perArr = [p1, p2, p3, p4, p5, p6];

    function getAdult(arr) {
        let newArr = [];
        //遍历数组
        for (let i = 0; i < arr.length; i++) {
            // 检查当前的人的对象是否成年
            if (arr[i].age >= 18) {
                // 进入判断,证明当前人的对象成年了,将其放入到新的数组
                newArr.push(arr[i]);
            }
            // console.log(arr[i]);//每一个人的对象已拿到
        }
        return newArr;
    }
    let result = getAdult(perArr);//perArr为实参,调用getAdult函数方法
    console.log(result);

练习:
编写代码,去除数组中重复的数字

// 思路:分别取出每个数,和其他的数字进行比较
    for (let i = 0; i < arr.length; i++) {
        // 将arr[i]和后边的元素进行比较,获取arr[i]后边的元素
        // console.log(arr[i]);
        for (let j = i + 1; j < arr.length; j++) {
            // console.log('------>', arr[j]);
            // 比较arr[i]、arr[j]
            if (arr[i] === arr[j]) {
                // 全等,说明出现了重复的数字,删除后边的数字J
                arr.splice(j, 1);
                //当删除一个元素后,后边所有的元素索引自动前移,这会导致有元素会错过比较
                // 执行j--,将当前位置再比较一遍,避免出现重复的现象
                j--;
            }
        }
    }
    console.log(arr);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值