我有以下lambda表达式
if (MyObject.eId.filter(e => e === record.Id).length > 0)
{
return;
}
这适用于除IE之外的所有浏览器(在IE 11中选中)
我试图将其转换为以下方式,但出现语法错误。请帮助我重写上述功能。
MyObject.eId.filter(function (e) {
if (e === record.Id).length > 0
{
return;
}
});
答案 0 :(得分:1)
您的非箭头函数不正确:基本上在.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;
}