我可以简单地用Javascript中的Indexof替换包含吗?

问题描述 投票:1回答:2

我正在尝试调试与IE11的JS不兼容:

对象不支持属性或方法'包含'

我读过includes很容易被indexof取代。但是,由于我的JS知识非常有限,我不确定这是否是我需要在这里做出的唯一改变......或者其他部分是否也需要重写?

原版的

if (el.method_title.includes('|')){
    el.timeslot = el.method_title.split('|')[1].trim();
    el.method_title = el.method_title.split('|')[0].trim();
}

提案

if (el.method_title.indexOf('|')){
javascript
2个回答
3
投票

该方法称为indexOf,如果在字符串中找不到子字符串,则返回-1,因此您应该进行比较:

if (el.method_title.indexOf('|') >= 0)

indexOf()方法返回字符串中第一次出现指定值的位置。

如果要搜索的值永远不会发生,则此方法返回-1

注意:indexOf()方法区分大小写。


0
投票

我建议不要用includes / indexOf测试字符串 - 只需split它并检查结果:

var parts = el.method_title.split('|'); // might want to pass a limit as well
if (parts.length > 1) {
    el.timeslot = parts[1].trim();
    el.method_title = parts[0].trim();
}

更简单,更高效。

© www.soinside.com 2019 - 2024. All rights reserved.