我有一个像这样的对象:

var packages = { SoftwareColumn: false, BatchNumberColumn : false, MatrixId : 1, CommentsColumn : true, PartNumber : "Abc123" }


上面的对象更大,但是对于这个问题,我已经缩小了范围。我要实现的目标是遍历它,并获取所有值为true的键/值。我试过了

if (packages.length > 0) {
     Object.keys(packages).forEach(function (key) {
        //here I can't figure out how to get values which are only true and get their key
  });
}

最佳答案

您可以使用reduce()而不是forEach()循环并返回obj。要仅返回true值,您可以使用标识/严格等于===运算符。



var packages = {
  SoftwareColumn: false,
  BatchNumberColumn: false,
  MatrixId: 1,
  CommentsColumn: true,
  PartNumber: 'Abc123'
}

var newObj = Object.keys(packages).reduce(function(r, e) {
  if(packages[e] === true) r[e] = packages[e]
  return r;
}, {})

console.log(newObj)

关于javascript - 从对象获取 bool 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44179005/

10-13 07:20