编程语言
首页 > 编程语言> > javascript – 对array.includes和alternative的浏览器支持

javascript – 对array.includes和alternative的浏览器支持

作者:互联网

我查了一下,发现这是关于在数组中的较大字符串中查找子字符串. Array.Prototype.includes

if (t.title.includes(searchString))

我是$.each的一部分,它遍历更大的对象数组(每个对象都有一些信息,包括字符串,日期等). searchString是用户在框中键入的内容.所有这些都是我在页面上的列表的简单搜索功能.

这在Chrome中运行得很好.但Firefox和IE正在出现错误

TypeError: currentTicket.title.includes is not a function

所以我要么提出一个警告标志,我的应用程序只适用于Chrome或我手工查找功能?奇怪的是来自MDN的doc页面我发布说只有Firefox支持array.includes,奇怪的是它只有Chrome运行它.

解决方法:

考虑使用更广泛支持的方法,例如Array.prototype.indexOf()(IE也支持),而不是使用当前标记为“实验性”的API.

而不是t.title.includes(string)你可以使用t.title.indexOf(string)> = 0

您还可以使用Array.prototype.filter()获取符合特定条件的新字符串数组,如下例所示.

var arr = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"];
document.getElementById("input").onkeyup = function() {
  document.getElementById("output").innerHTML = arrayContainsString(arr,this.value);
}
document.getElementById("header").innerHTML = JSON.stringify(arr);

function arrayContainsString(array, string) {
  var newArr = array.filter(function(el) {
    return el.indexOf(string) >= 0;
  });
  return newArr.length > 0;
}
<input id="input" type="text" />
<br/>
<div>array contains text:<span id="output" />
</div>
<div id="header"></div>

标签:javascript,arrays,ecmascript-5,ecmascript-7
来源: https://codeday.me/bug/20191005/1856953.html