js 函数 array.filter() 的问题



所以我有一个我正在研究的JavaScript函数。我注意到我的编辑器在第 4 行标记了一个错误,但该功能在我测试过的每个浏览器中都有效,除了 IE 和 Safari。我觉得这特别奇怪。

该函数的基本思想是:获取"element"(html元素的ID(并将其转换为字符串,定义所有可能版本的"element"的数组,从数组中删除"element",并使用现在过滤的数组和"element"作为变量执行另一个函数。这是我所拥有的:

function thisFunction(element){
    var eStr=element.toString();
    var eArray=['element1', 'element2', 'element3'];
    var fArray=eArray.filter(e=>e!==eStr);
    fArray.forEach(doThis);
    function doThis(value){
        Now do this with 'fArray'....
        return false;
        doThis();
        }
    And do this with 'element'...
    return false;
    thisFunction();
    }

该错误显然与"var fArray"行有关,但我看不出问题。当我单击应该激活此功能的链接时,错误是"此功能未定义"以及第 4 行的错误。

第 4 行的问题是 IE 不支持您在回调中使用的箭头函数语法。更改此行:

var fArray=eArray.filter(e=>e!==eStr);

像这样:

var fArray=eArray.filter(function(e) { return e!==eStr; });

应该解决问题。

有关哪些浏览器支持哪些JS功能的详细信息,请参阅 https://kangax.github.io/compat-table/es6/

最新更新