我尝试使用include()函数,但对我来说返回false如下:
<script>
var fruits = ["Banana-orange", "Orange", "Apple", "Mango"];
console.log(fruits.includes("-")); // returnes false, should be true
</script>
如您所见,“香蕉橙色”包含连字符。我希望结果返回true。
我使用了错误的功能吗?
答案 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函数不返回任何内容的原因。而是遍历数组并测试数组的内容。