检查多个Array.includes使用或

时间:2017-12-14 00:13:46

标签: javascript arrays

如何在if语句中使用Array.includes()测试多个.include?以下似乎适用于一个项目, ie。 slug-title-one但忽略了第二项。

if (item.slug.includes('slug-title-one' || 'slug-title-13')) {
     // checks for and displays if either

}

2 个答案:

答案 0 :(得分:4)

由于documentation Array.includes只能测试单个元素。

你可以改变你的逻辑并使用

if (['slug-title-one','slug-title-13'].some(slug => item.slug.includes(slug))) {
     // checks for and displays if either

}

答案 1 :(得分:1)

您有几个选择。以下是一些想法:

重复包含

if (item.slug.includes('slug-title-one') || item.slug.includes('slug-title-13')) { ... }

辅助功能

if( includes(item.slug, 'slug-title-one', 'slug-title-13') ) { ... }

function includes() {

    var args = Array.prototype.slice.call(arguments);
    var target = args[0];
    var strs = args.slice(1); // remove first element

    for(var i = 0; i < strs.length; i++) {
        if(target.includes(strs[i])) {
            return true;
        }
    }

    return false;
}