关于js对象的处理的问题?

发布于 2022-09-13 01:07:06 字数 525 浏览 11 评论 0

像如下这样一个json对象,如何判断这几个属性值是否'相同'?

// 不同
{
    "name1": {
        "value": "1",
        "operate": 2
    },
    "name2": {
        "value": "10",
        "operate": 3
    },
    "name3": {
        "value": "10",
        "operate": 2
    }
}
//相同
{
    "name1": {
        "value": "100",
        "operate": 2
    },
    "name2": {
        "value": "100",
        "operate": 2
    },
    "name3": {
        "value": "100",
        "operate": 2
    }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

对风讲故事 2022-09-20 01:07:06
function isSomeValue(data) {
    return Object.keys(data).reduce((res,k) => res.add(JSON.stringify(data[k])), new Set).size !== Object.keys(data).length
}
isSomeValue(//相同
{
    "name1": {
        "value": "100",
        "operate": 2
    },
    "name2": {
        "value": "100",
        "operate": 2
    },
    "name3": {
        "value": "100",
        "operate": 2
    }
}) // true
孤城病女 2022-09-20 01:07:06

这个涉及到多级子对象中,遍历比较1级子对象的问题,而且要界定什么叫相同,什么叫不同,因为对于对象来是,绝对的相同是不存在的,只有子对象的各个子属性值相同。

这个其实是子对象遍历问题,一般其实很少做这样的处理,因为子对象稍微一复杂,这样的比较就很耗费资源啦,当然如果要进行的是全部相同比较,这个还稍微好一些,如果是找出其中是否有相同的,把相同的归到1个二维数组中,这个就比较浪费资源啦。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文