角度,在执行lodash之前剥离未使用的数据_.isEqual

时间:2015-07-22 14:14:11

标签: javascript angularjs lodash

所以我试图使用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。谢谢!

3 个答案:

答案 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;