所以我试图使用lodash' _.isEqual
方法比较2个对象,我有非常直接的功能,可以像这样检查
function findMatchingQuery(savedSearch) {
if (_.isEqual(savedSearch.data.document.query, $scope.searchResults.minify())) {
return true;
}
}
数据发生了一些变化,我需要在进行比较之前提取一些数据。
所以每个对象都有这种格式 -
{
"name": "item name",
"showMore": boolean,
"filters": []
}
我想做的是删除showMore
节点。我尝试使用_.remove
添加一些变量,但似乎这不起作用,因为删除正在查找键和值。
var modifiedSavedSearch = _.remove(savedSearch.data.document.query, { "showMore" });
var modifiedCurrentSearch = _.remove($scope.searchResults.minify(), { "showMore" });
在运行_.isEqual
之前,是否有一种简单的方法可以剥离对象的这些部分?不必是lodash。谢谢!
答案 0 :(得分:3)
您可以删除该属性,例如:
delete savedSearch.data.document.query.showMore
您可以使用_.omit
将其删除,也可以使用_.pick
选择其余属性
答案 1 :(得分:1)
是的,omit应该做你想要的事情:
var modifiedSavedSearch = _.omit(savedSearch.data.document.query, { "showMore" });
答案 2 :(得分:1)
如果您想完全摆脱它,您可以执行以下操作:
// assuming this is your variable
var myVar = {
"name": "item name",
"showMore": boolean,
"filters": []
};
// delete the unwanted property
delete myVar.showMore;