array.filter()

时间:2017-11-14 23:47:24

标签: javascript arrays filter

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

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

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"有关。线,但我看不出问题。单击应该激活此功能的链接时的错误是" thisFunction未定义"以及第4行的错误。

1 个答案:

答案 0 :(得分:1)

第4行的问题是IE不支持您在回调中使用的arrow function语法。改变这一行:

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

类似于:

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

应该解决问题。

可以在https://kangax.github.io/compat-table/es6/

找到哪些浏览器支持哪些JS功能的详细信息