gpt4 book ai didi

Javascript - 如何比较两个对象的数据属性?

转载 作者:行者123 更新时间:2023-12-03 03:53:48 25 4
gpt4 key购买 nike

我只是想将从服务器接收到的通知列表与我存储在本地的通知列表进行比较。

if(myApp.NewNotifications != response.data['unread_notifications']){
return true;
} else { return false; }

问题是,即使它们具有相同的数据,它也会返回 false。

由于我在客户端使用 Vue.js,因此我假设它将一些属性附加到本地对象,这使得它与从后端接收到的属性不同。

这是一个输出示例: console log

我检查了 Lodash 文档,但我认为没有针对这种情况的比较功能。

最佳答案

我做了一个简单的比较函数,以防你有 id 属性。在您的对象中并想要检查数组中是否有新行。其他方法必须循环遍历所有对象并逐一检查它们。

function simpleComparision(oldVal, newVal) {
if(oldVal.length !== newVal.length) {
return false;
}

return newVal.filter(function(a) {
return oldVal.map(function(b) { return b.id; }).indexOf(a.id)===-1;
}).length === 0 ? true:false;
}

var equal = simpleComparision([{id: 1}, {id: 2}], [{id: 2}, {id: 1}]);
console.log(equal); // they are equal

equal = simpleComparision([{id: 1}, {id: 2}], [{id: 2}, {id: 3}]);
console.log(equal); // they are not equal

equal = simpleComparision([{id: 1}, {id: 2}], [{id: 2}, {id: 1}, {id: 3}]);
console.log(equal); // they are not equal

关于Javascript - 如何比较两个对象的数据属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45051870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com