我可以简单地用Java的Indexof替换掉Includes吗?

时间:2019-03-26 22:22:25

标签: javascript

我正在尝试调试与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('|')){

2 个答案:

答案 0 :(得分:3)

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

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

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

如果要搜索的值从不出现,则此方法返回-1

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

答案 1 :(得分: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();
}

更简单,更高效。