Javascript IE 11中JS过滤函数面临的问题

Javascript IE 11中JS过滤函数面临的问题,javascript,jquery,Javascript,Jquery,我有下面的lambda表达式 if (MyObject.eId.filter(e => e === record.Id).length > 0) { return; } 这适用于除IE以外的所有broswers(在IE 11中签入) 我试图将其转换为以下方式,但出现语法错误。请帮助我重写上述函数 MyObject.eId.filter(function (e) { if (e === record.Id).length > 0

我有下面的lambda表达式

 if (MyObject.eId.filter(e => e === record.Id).length > 0) 
{
 return;
}
这适用于除IE以外的所有broswers(在IE 11中签入)

我试图将其转换为以下方式,但出现语法错误。请帮助我重写上述函数

MyObject.eId.filter(function (e) {
                    if (e === record.Id).length > 0
                    {
                        return;

                    }


                }); 

您的非箭头函数不正确:基本上在
.filter
方法的回调/谓词中,您应该只检查
e
是否与记录ID匹配,而不检查长度。应在返回/筛选的数组上执行长度检查:

if (MyObject.eId.filter(function(e) { return e === record.Id; }).length > 0) {
    return;
}
要分解上面复杂的一行,您可以将其视为:

// Step 1: Get an filtered array of IDs that match record ID
var filteredIds = MyObject.eId.filter(function(e) {
    return e === recordId;
});

// Step 2: Check length of filtered array
if (filteredIds.length) {
    return;
}

也许你想用塑料填充?请看一看。对于非箭头函数,您的代码应该如下所示:
if(MyObject.eId.filter(函数(e){return e==record.Id;}).length>0{
由于兼容性,这应该是可接受的答案。if(MyObject.eId.filter(函数(e){return e==record.Id}).length>0)这很有效fine@aniltc抱歉,有一个小错误:应该是
function
而不是
function
。现在修复它。