结合使用 .toUpperCase() 和 .includes()
Using .toUpperCase() in conjunction with .includes()
我正在尝试使用 .includes() 方法搜索数组。由于区分大小写,我不希望使用 .includes() 方法未检测到确实在数组中的元素。因此,我试图将 .toUpperCase() 与 .includes()
结合使用
我不明白为什么我的代码不起作用。
var euroTour = ["France", "the Netherlands", "the UK", "Spain",
"Portugal"];
var findCountry = euroTour.toUpperCase().includes('FRANCE');
我希望使用上面的代码,将 true 写入文档。然而,什么也没写。当我完全删除 .toUpperCase() 方法时,正如预期的那样,false 被写入文档,因为搜索的主题 'FRANCE' 与数组的实际元素 'France' 不同。
includes
不提供不区分大小写的选项。您可以将 some
与不区分大小写的正则表达式结合使用来完成您想要的:
var euroTour = ["France", "the Netherlands", "the UK", "Spain", "Portugal"]
console.log(euroTour.some(country => /^france$/i.test(country)))
.toUpperCase()
只能用于字符串,不能用于我们正在做的整个数组。使用 map 和 capitalise
数组中的字符串,然后用
检查
.includes
var euroTour = ["France", "the Netherlands", "the UK", "Spain",
"Portugal"];
var findCountry = euroTour.map((e)=>e.toUpperCase()).includes('FRANCE');
console.log(findCountry)
您在数组 euroTour
上使用 toUpperCase()
,这是无效的 - 它只能用于字符串。首先map
数组转大写:
euroTour = euroTour.map(e => e.toUpperCase());
然后你可以在上面使用 .includes()
:
euroTour.includes("FRANCE");
示范:
var euroTour = ["France", "the Netherlands", "the UK", "Spain",
"Portugal"
];
euroTour = euroTour.map(e => e.toUpperCase());
var findCountry = euroTour.includes("FRANCE");
var euroTour = ["France", "the Netherlands", "the UK", "Spain", "Portugal"];
var findCountry = euroTour
.map(country => country.toUpperCase())
.includes('FRANCE');
console.log(findCountry);
// A More General Solution
function includesStrCaseInsensitive(arr, str){
return arr
.map(i => i.toUpperCase())
.includes(str.toUpperCase());
}
console.log(includesStrCaseInsensitive(euroTour, 'FRANCE'));
console.log(includesStrCaseInsensitive(euroTour, 'FrANCE'));
我正在尝试使用 .includes() 方法搜索数组。由于区分大小写,我不希望使用 .includes() 方法未检测到确实在数组中的元素。因此,我试图将 .toUpperCase() 与 .includes()
结合使用我不明白为什么我的代码不起作用。
var euroTour = ["France", "the Netherlands", "the UK", "Spain",
"Portugal"];
var findCountry = euroTour.toUpperCase().includes('FRANCE');
我希望使用上面的代码,将 true 写入文档。然而,什么也没写。当我完全删除 .toUpperCase() 方法时,正如预期的那样,false 被写入文档,因为搜索的主题 'FRANCE' 与数组的实际元素 'France' 不同。
includes
不提供不区分大小写的选项。您可以将 some
与不区分大小写的正则表达式结合使用来完成您想要的:
var euroTour = ["France", "the Netherlands", "the UK", "Spain", "Portugal"]
console.log(euroTour.some(country => /^france$/i.test(country)))
.toUpperCase()
只能用于字符串,不能用于我们正在做的整个数组。使用 map 和 capitalise
数组中的字符串,然后用
.includes
var euroTour = ["France", "the Netherlands", "the UK", "Spain",
"Portugal"];
var findCountry = euroTour.map((e)=>e.toUpperCase()).includes('FRANCE');
console.log(findCountry)
您在数组 euroTour
上使用 toUpperCase()
,这是无效的 - 它只能用于字符串。首先map
数组转大写:
euroTour = euroTour.map(e => e.toUpperCase());
然后你可以在上面使用 .includes()
:
euroTour.includes("FRANCE");
示范:
var euroTour = ["France", "the Netherlands", "the UK", "Spain",
"Portugal"
];
euroTour = euroTour.map(e => e.toUpperCase());
var findCountry = euroTour.includes("FRANCE");
var euroTour = ["France", "the Netherlands", "the UK", "Spain", "Portugal"];
var findCountry = euroTour
.map(country => country.toUpperCase())
.includes('FRANCE');
console.log(findCountry);
// A More General Solution
function includesStrCaseInsensitive(arr, str){
return arr
.map(i => i.toUpperCase())
.includes(str.toUpperCase());
}
console.log(includesStrCaseInsensitive(euroTour, 'FRANCE'));
console.log(includesStrCaseInsensitive(euroTour, 'FrANCE'));