我在我的应用程序中使用Underscore.js库。我有一个对象
{a:"1", b:"2", c: "3", d:"no", e: "no"}
我想压缩此对象,使其只具有不具有“no”属性的属性,这将导致下面的对象
{a:"1", b:"2", c: "3"}
在Uderscore.js中,我使用了以下代码
_.omit(obj, 'attr');
但是在上面的代码中,我需要有一个函数输出包含no
值的键,而不是'attr'。有一个更好的方法吗。请让我知道如何让密钥具有“否”值。
答案 0 :(得分:2)
您可以使用_.omit
作为
var obj = {a:"1", b:"2", c: "3", d:"no", e: "no"};
// _.omit returns a copy of the object
obj = _.omit(obj, function(value, key, object) {
return (value == "no");
});
console.log(obj);
答案 1 :(得分:1)
下划线的_.omit()
也接受'谓词',这是与_.filter()
类似的函数的术语:
var o = {a:"1", b:"2", c: "3", d:"no", e: "no"}
console.log(_.omit(o, function(v){
return v === 'no';
}));
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>