Javascript / jQuery如何通过保留其键来过滤对象?

时间:2017-03-31 07:29:08

标签: javascript jquery

我希望有这样的东西:获取另一个没有属性的对象。我已经有了一个有效的解决方案:

var s = {
 a: 3,
 b: 2,
 c: -1,
 d: 8,
 e: -1
};

var f = {};
jQuery.map(s, function(v,k) {
    if (v != -1)
    {
        f[k] = v;
    }
});

output is:
     a: 3,
     b: 2,
     d: 8,

它很好,但不是更简单的溶剂?也许使用jQuery,但到目前为止,.map.filter.grep方法都没有帮助我!

3 个答案:

答案 0 :(得分:0)

这可能会有所帮助

var s = {
 a: 3,
 b: 2,
 c: -1,
 d: 8,
 e: -1
};
for(var k in s){
  if(s[k] == -1){
    delete(s[k]);
  }
}
console.log(s);

答案 1 :(得分:0)

你可以这样的事情



var s = {
 a: 3,
 b: 2,
 c: -1,
 d: 8,
 e: -1
};


for (var property in s) {
    if (s[property]!=-1) {
      console.log(property+":"+s[property]);
    }
}




答案 2 :(得分:0)

您可以使用delete operator删除对象的属性。



var s = { a: 3, b: 2, c: -1, d: 8, e: -1 }

Object.keys(s).forEach(function (k) {
    if (s[k] === -1) {
        delete s[k];
    }
});
console.log(s);