我有一个机器人可以在线检索智能手机及其价格。它会获取其完整描述,然后搜索设备名称,如下所示:
let devices = ['Xperia XA Ultra',
'iPhone 6 Apple Plus',
'iPhone 7 Apple Plus Red',
'LG K9',];
function recuperarAparelho(fullDescription){
for(let device of devices){
//search for the substring here
}
return fullDescription;
}
99% 的情况下,搜索都有效。但有一个特别是我似乎无法使其工作:
let fullDesc = 'Smartphone LG K9 Preto 16GB, Android 7.0, Dual Chip, TV Digital, Tela 5.0"HD, Câmera 8MP, Processador Quad Core 1.3 Ghz e 2GB de RAM - LMX210BMW 16GB'
搜索应该返回“LG K9”,但我尝试过indexOf()、search() 和 contains(),但都不起作用。我在这里缺少什么?
最佳答案
使用.includes()
Read more about .includes() here
indexOf
也可以工作,所以不确定为什么它不适合你 - 请参阅下面的代码片段
let fullDesc = 'Smartphone LG K9 Preto 16GB, Android 7.0, Dual Chip, TV Digital, Tela 5.0"HD, Câmera 8MP, Processador Quad Core 1.3 Ghz e 2GB de RAM - LMX210BMW 16GB';
console.log(fullDesc.includes('LG K9'));
console.log(!!fullDesc.indexOf('LG K9')); /* double bang to make it boolean */
关于javascript - IndexOf、Search 和 Contains 似乎无法在更大的字符串中找到子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52425450/