检测数组中的任何元素是否包含连字符

时间:2019-03-31 17:11:00

标签: javascript arrays

我尝试使用include()函数,但对我来说返回false如下:

<script>
    var fruits = ["Banana-orange", "Orange", "Apple", "Mango"];
    console.log(fruits.includes("-")); // returnes false, should be true
</script>

如您所见,“香蕉橙色”包含连字符。我希望结果返回true。

我使用了错误的功能吗?

3 个答案:

答案 0 :(得分:5)

Array#includes与数组中的元素进行比较(在您的情况下为完整字符串匹配)。要使其工作,请将数组中的值与空格隔开(使用Array#join),然后使用String#includes方法搜索子字符串。

var fruits = ["Banana-orange", "Orange", "Apple", "Mango"];
console.log(fruits.join('').includes("-")); 

或使用Array#some进行迭代,并使用String#includes方法检查是否至少有一个包含字符串。

var fruits = ["Banana-orange", "Orange", "Apple", "Mango"];
console.log(fruits.some(v => v.includes("-")));

答案 1 :(得分:0)

您实际上要检查的是水果数组中是否有一个项目是“-”,

我将使用for循环来检查数组中是否包含“-”的项。

const fruits = ['Banana-orange', 'Orange', 'Apple', 'Mango'];

for (let i = 0; fruits.length; i++) {
    if (fruits[i].includes('-')) return true;
}

答案 2 :(得分:-1)

水果不包含“-”。水果(1)包含“-”。这就是为什么include函数不返回任何内容的原因。而是遍历数组并测试数组的内容。