【问题标题】:how to filter arry of JSON objects like [{'id':1,name:'a'},{'id':2,name:'b'},{'id':3,name:'c'}] and return only unmatched result [duplicate]如何过滤 JSON 对象数组,例如 [{'id':1,name:'a'},{'id':2,name:'b'},{'id':3,name:'c'} ] 并仅返回不匹配的结果 [重复]
【发布时间】:2019-07-11 06:50:07
【问题描述】:

var data = [{
    "bankId": "67",

    "bankName": "TESTBANKJU",

  },
  {
    "bankId": "52",

    "bankName": "Test",

  },
  {
    "bankId": "50",

    "bankName": "Sanjyot Bank",

  },
  {
    "bankId": "45",

    "bankName": "TestDemo",

  },
];

得到bankId不是67和52的结果

data.filter(x => x.bankId != '67' || x.bankId != '52');

data = [{
    "bankId": "50",

    "bankName": "Sanjyot Bank",

  },
  {
    "bankId": "45",

    "bankName": "TestDemo",

  }
]

【问题讨论】:

  • JSON 是一种用于数据交换的文本符号(More here.) 如果您正在处理 JavaScript 源代码,而不是处理 string,那么您就不是在处理 JSON。
  • 您在描述中确实写了“和”,但在代码中写了“或”。

标签: javascript angular


【解决方案1】:

看起来,您需要一个 AND 条件。 OR 返回每个项目,因为一个或两个检查始终是true

var data = [{ bankId: "67", bankName: "TESTBANKJU" }, { bankId: "52", bankName: "Test" }, { bankId: "50", bankName: "Sanjyot Bank" }, { bankId: "45", bankName: "TestDemo" }]
    result = data.filter(x => x.bankId !== '67' && x.bankId !== '52');

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

【讨论】:

    【解决方案2】:

    您需要&& 运算符。

    var data = [{
      "bankId": "67",
    
      "bankName": "TESTBANKJU",
    }, {
      "bankId": "52",
    
      "bankName": "Test",
    }, {
      "bankId": "50",
    
      "bankName": "Sanjyot Bank",
    }, {
      "bankId": "45",
    
      "bankName": "TestDemo",
    }, ]
    
    var filtered_data = data.filter(item => (item.bankId != "67" && item.bankId != "52"))
    
    console.log(filtered_data)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-23
      • 2015-03-24
      • 2013-11-04
      • 2013-11-14
      相关资源
      最近更新 更多