我有一个在页面加载时启动的功能。假设从数组/列表中返回一个字符串项。我已经测试过了,它似乎工作正常:
function finder(file_list, evt_name) {
file_list.forEach(function (item, index) {
if (item.includes(evt_name)){
console.log(item);
return item;
}
});
}
我有一个由按钮单击事件触发的第二个函数。在这个函数中,我调用了我的第一个函数('finder'):
document.getElementById("btnGetInterval").onclick = function () {
...
var t_file = finder(tidal_files, event);
var rv_file = finder(river_files, event);
var rn_file = finder(rain_files, event);
...
}
在控制台中,当'finder'
函数被调用时,它会console.log(item)'
正确,当它遇到断点时,它会显示正确的item
将被返回,但是当它返回到按钮单击函数内部时,我试图将返回的值分配给变量,它显示为'undefined'
。为什么会发生这种情况?有什么办法解决吗?
forEach()
callback
对每个数组元素执行一次函数;不同map()
或reduce()
它总是返回值undefined
并且不可链接。典型的用例是在链的末端执行副作用。
您可以.find
改用,并且必须在return
之前添加file_list.find(function (item, index) {
:
function finder(file_list, evt_name) {
return file_list.find(function (item, index) {
console.log(item);
return item.includes(evt_name);
});
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句