javascript中的LINQ WHERE子句等效

时间:2019-07-16 21:05:25

标签: javascript arrays linq

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

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

我想检查是否有一个类型为Mango且DealerID不为2的商品。 在C#linq中,我将执行以下操作:

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

如何使用javascript实现相同的功能?

2 个答案:

答案 0 :(得分:1)

这应该做。如果没有项目,它将返回未定义,否则将返回项目。

let result = lstObj.filter(dealer => {return 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 => {return dealer.Type.split(',').includes('Mango') && dealer.DealerId != 2})

console.log(result)

答案 1 :(得分:1)

您可以使用some

var result= array.some(function (item) {
    return  item.Type.split(",").inlcudes("Mango") && item.DealerID != 2;
});