gpt4 book ai didi

javascript - ie8的js数组搜索功能

转载 作者:行者123 更新时间:2023-11-29 14:40:32 24 4
gpt4 key购买 nike

我已经编写了一个需要在 ie8 中工作的 js 库,并且我被要求不要使用 jQuery 作为实现的一部分。部分 js 库需要在数组中搜索匹配值。现代浏览器支持数组 indexOf() 函数来实现这一点。但是,由于我的 js 库需要支持 ie8,所以我将无法使用此功能。最初我编写了以下自定义函数:

function inArray(anArray, aValue)
{
for (var i = 0; i < anArray.length; i++)
if (anArray[i] === aValue) return true;

//value was not in array
return false;
}

然而,今天早上我想到最好使用原型(prototype)继承来编写它。使用原型(prototype)继承重写它的好方法是什么?另外,有没有一种方法可以进入用于 ES 标准的直接源代码,复制 indexOf() 函数并将其粘贴到我的自定义 js 库中?不确定这是否可行,但这似乎是一种无需重新发明轮子即可移植代码片段的好方法。

最佳答案

您最好使用将数组传递给的实用函数,例如问题中的 inArray

可以Array#indexOfincludes 或类似于 Array.prototype 添加垫片,但是如果这样做,它将变得可枚举并出现在 for-in 循环中。人们不应该使用for-in 来遍历数组,但不幸的是,他们有时会这样做。如果他们在您的代码库或您的代码库包含的任何库中这样做,那将是一个问题。

不幸的是,你不能让它不可枚举,因为 IE8 不支持 Object.defineProperty(除了 HTML 元素,奇怪的是)。

关于javascript - ie8的js数组搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38854966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com