JavaScript基础学习 使用数组内置对象进行去重案例

JavaScript基础学习 使用数组内置对象进行去重案例

<!DOCTYPE html>
<html>
    <head>
        <title>js开始学习</title>
        <script>
        
        console.log('------------------------------------------------');
        //  数组去重(重点案例)
        function unique(ar) {
            var newArrT = [];
            for (var i = 0; i < ar.length; i++) {
                if (newArrT.indexOf(ar[i]) === -1) {
                    newArrT.push(ar[i]);
                }
            }
            return newArrT;
        }
        var result = unique(['c', 'a', 'b', 'd', 'e', 'f', 'c', 'm', 'a', 'd', 'g', 'q']);
        console.log(result);
        </script>

    </head>

    <body>
        
    </body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,可以通过对象属性去重数组。具体实现方法有两种,一种是使用filter()和indexOf()方法,另一种是使用for循环和includes()方法。 方法一:使用filter()和indexOf()方法 1.先使用filter()方法筛选出重复的对象的下标,使用indexOf()方法获取第一次出现的下标。 2.再使用filter()方法根据下标筛选出不重复的对象。 方法二:使用for循环和includes()方法 1.使用for循环遍历数组使用includes()方法判断数组中是否已经存在该对象。 2.如果不存在,则将该对象的id和name属性拼接成一个字符串,添加到一个新的数组中,并将该对象添加到另一个新的数组中。 下面是方法一和方法二的具体实现代码: 方法一: const dataArr = [ { id: 1, name: '名称1' }, { id: 2, name: '名称2' }, { id: 2, name: '名称2' }, { id: 2, name: '名称3' }, { id: 3, name: '名称4' }, { id: 4, name: '名称4' }, { id: 5, name: '名称5' } ] const a = dataArr.map(item => item.id + '-' + item.name) const b = dataArr.filter((item, index) => a.indexOf(item.id + '-' + item.name) === index) console.log(b) // 输出结果: // [ // { id: 1, name: '名称1' }, // { id: 2, name: '名称2' }, // { id: 2, name: '名称3' }, // { id: 3, name: '名称4' }, // { id: 4, name: '名称4' }, // { id: 5, name: '名称5' } // ] 方法二: const dataArr = [ { id: 1, name: '名称1' }, { id: 2, name: '名称2' }, { id: 2, name: '名称2' }, { id: 2, name: '名称3' }, { id: 3, name: '名称4' }, { id: 4, name: '名称4' }, { id: 5, name: '名称5' } ] const arr1 = [] const arr2 = [] for (let i = 0; i < dataArr.length; i++) { if (!(arr1.includes(dataArr[i].id + '-' + dataArr[i].name))) { arr1.push(dataArr[i].id + '-' + dataArr[i].name) arr2.push({ id: dataArr[i].id, name: dataArr[i].name }) } } console.log(arr2) // 输出结果: // [ // { id: 1, name: '名称1' }, // { id: 2, name: '名称2' }, // { id: 2, name: '名称3' }, // { id: 3, name: '名称4' }, // { id: 4, name: '名称4' }, // { id: 5, name: '名称5' } // ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值