我很好奇为什么会这样
let updateCatInfo = e.sender.dataSource._data.find(x => x.CatalogID == catID );
无法转换为此
let updateCatInfo = e.sender.dataSource._data.find(function (x) { x.CatalogID == catID });
我问的原因是因为我正在使用.NET Web浏览器控件,并且由于某种原因,它不喜欢胖箭头功能(如第一个代码片段所示),并试图将其转换为第二个代码片段。但是第二个片段不起作用。
所以我要做的
for (let i = 0; i < e.sender.dataSource._data.length; i++) {
if (e.sender.dataSource._data[i].CatalogID == catID) {
updateCatInfo = e.sender.dataSource._data[i];
break;
}
}
对于所有使用粗箭头功能的查找功能
答案 0 :(得分:3)
根据有关Arrow Functions > Function bod y的文档:
功能主体
箭头功能可以具有“简洁的正文”或通常的“块正文”。
在简洁的正文中,仅指定一个表达式,该表达式成为隐式返回值。在块体中,必须使用显式的return语句。
示例中的arrow函数具有简洁的主体格式,因此隐式返回了表达式(x.CatalogID == catID
)。
使用函数表达式(或块体箭头函数)时,必须显式声明返回值:
let updateCatInfo = e.sender.dataSource._data.find(function (x) { return x.CatalogID == catID });