首页 > 解决方案 > LINQ WHERE 子句等效于 javascript

问题描述

我希望从我的 javascript 数组“lstObj”中提取信息,如下所示:

[
  {
    "DealerId": "1",
    "Type": "Apple,Orange"
  },
  {
    "DealerId": "2",
    "Type": "Mango"
  },
  {
    "DealerId": "3",
    "Type": "Mango"
  }
]

我想检查是否存在 Type = Mango 且 DealerID not = 2 的项目。在 C# linq 中,我会执行以下操作:

if(lstObj.Any(x=>x.Type.Split(',').Contains("Mango") && x.DealerID != 2))
{
      //Do something
}

如何使用 javascript 实现相同的目标?

标签: javascriptarrayslinq

解决方案


这应该做。如果没有项目,它将返回空数组,否则将返回项目。

let result = lstObj.filter(dealer =>  dealer.Type.split(',').includes('Mango') && dealer.DealerId != 2);

let lstObj = [
  {
    "DealerId": "1",
    "Type": "Apple,Orange"
  },
  {
    "DealerId": "2",
    "Type": "Mango"
  },
  {
    "DealerId": "3",
    "Type": "Mango"
  }
]

let result = lstObj.filter(dealer => dealer.Type.split(',').includes('Mango') && dealer.DealerId != 2)

console.log(result)


推荐阅读