为了账号安全,请及时绑定邮箱和手机立即绑定

在对象数组中,过滤相等的对象。(所有属性都匹配)

在对象数组中,过滤相等的对象。(所有属性都匹配)

慕无忌1623718 2021-12-12 18:14:29
const timings = [  {startH: 10, startM: 20, endH: 11, endM: 30},  {startH: 10, startM: 20, endH: 11, endM: 30},  {startH: 9, startM: 10, endH: 11, endM: 30},  {startH: 10, startM: 20, endH: 10, endM: 30},  {startH: 10, startM: 20, endH: 11, endM: 30},  {startH: 10, startM: 20, endH: 11, endM: 30}];返回数组内所有相等的对象
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

尝试使用下一个代码:


const timings = [

  {startH: 10, startM: 20, endH: 11, endM: 30},

  {startH: 10, startM: 20, endH: 11, endM: 30},

  {startH: 9, startM: 10, endH: 11, endM: 30},

  {startH: 10, startM: 20, endH: 10, endM: 30},

  {startH: 10, startM: 20, endH: 11, endM: 30},

  {startH: 10, startM: 20, endH: 11, endM: 30}

];

Array.prototype.uniqueObjects = function (props) {

    function compare(a, b) {

      var prop;

        if (props) {

            for (var j = 0; j < props.length; j++) {

              prop = props[j];

                if (a[prop] != b[prop]) {

                    return false;

                }

            }

        } else {

            for (prop in a) {

                if (a[prop] != b[prop]) {

                    return false;

                }

            }


        }

        return true;

    }

    return this.filter(function (item, index, list) {

        for (var i = 0; i < index; i++) {

            if (compare(item, list[i])) {

                return false;

            }

        }

        return true;

    });

};

 

var uniqueObject = timings.uniqueObjects(["startH", "startM", "endH", "endM"]);


console.log(uniqueObject);


查看完整回答
反对 回复 2021-12-12
  • 1 回答
  • 0 关注
  • 253 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号