首页 > 解决方案 > 如何以角度从字典对象中排除匹配值?

问题描述

我创建了一个函数,它接受一个字典对象并匹配数组,如下所示:

const dict = {
  CheckAStatus: "PASS",
  CheckAHeading: "",
  CheckADetail: "",
  CheckBStatus: "FAIL",
  CheckBHeading: "Heading1",
  CheckCStatus: "FAIL",
  CheckCHeading: "Heading2"
};

我想排除所有PASS作为值或empty string ("")作为值的键值对。换句话说,JSON.stringify(dict)应该给出:

  CheckBStatus: "FAIL",
  CheckBHeading: "Heading1",
  CheckCStatus: "FAIL",
  CheckCHeading: "Heading2"

我在下面写了但它不起作用

 const items = Object.keys(dict)
  .filter(key => key.indexOf('PASS')>= 1)

标签: javascriptnode.jsangulartypescriptdictionary

解决方案


考虑一个简单的循环,在满足正确条件时for...in将键/值对添加到您的对象。items

const dict = {
  CheckAStatus: "PASS",
  CheckAHeading: "",
  CheckADetail: "",
  CheckBStatus: "FAIL",
  CheckBHeading: "Heading1",
  CheckCStatus: "FAIL",
  CheckCHeading: "Heading2"
};

const items = {};

for (let key in dict) {
  if (!["PASS", ""].includes(dict[key])) {
    items[key] = dict[key];
  }
}

console.log(items);


推荐阅读