【问题标题】:How to filter by multiple values using .includes?如何使用 .includes 按多个值进行过滤?
【发布时间】:2020-04-18 14:49:51
【问题描述】:

我正在使用 .includes 函数根据它们的字符串内容过滤一些记录。

这里是我的代码快照


 var oav = ["baluardo"]

...

  if (((item.metadata["pico:record"]["dc:description"]["_"]).length >= 10 &&
                    (item.metadata["pico:record"]["dc:description"]["_"]).length <= 400) && (item.metadata["pico:record"]["dc:description"]["_"])
                    .includes(oav) 
                    )

... do something ...

使用一个术语,.includes 函数可以正常工作,添加一个像这样的术语


var oav = ["baluardo", "Fortezza"]

不起作用,我有一个空数组。

建议?

问候

【问题讨论】:

  • 所以您想检查您的元数据是否至少包含 oav 中的这些字符串之一,或者您想检查您的元数据是否包含 oav 中的所有这些字符串?
  • 使用中间变量让您的生活更轻松:const meta = item.metadata["pico:record"]["dc:description"]["_"]
  • @AndrewL64 所有这些字符串

标签: javascript


【解决方案1】:

您可以使用.every() 检查oav 中的每个元素是否都在元数据中。

var oav = ["baluardo", "Fortezza"]

//not actual metadata
var meta = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "baluardo", "Fortezza"];

if (meta.length >= 10 && meta.length <= 400 && oav.every(o => meta.includes(o))) {
  console.log("meta includes baluardo and Fortezza");
}

【讨论】:

  • 你打败了我。 +1
【解决方案2】:

使用两个some() 函数将搜索词与description 值进行比较:

const result = searchTerms.some(word => inputArr.some(el => el.desc.includes(word)))

function findSearchTerms(inputArr, searchTerms){
    if (inputArr.length >= 0 && inputArr.length <= 10 && searchTerms.some(word => inputArr.some(el => el.desc.includes(word)))){
        console.log("one or more of these elements includes a search term")                   
    }else{
        console.log("none of these elements includes a search term")                   
    }
}


const terms = ["baluardo", "Fortezza"]
let arr = [{desc:"baluardo etc."},{desc:"etc. Fortezza"},{desc:"Other desc"}]

findSearchTerms(arr,terms)

arr = [{desc:"etc."},{desc:"etc."},{desc:"Other desc"}]

findSearchTerms(arr,terms)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2018-02-18
    • 1970-01-01
    • 2019-01-30
    • 2020-01-04
    相关资源
    最近更新 更多