返回Array.forEach中函数的值而不是内部函数的值
这个问题在这里已经有了答案:
使用Array#every
检查元素
function isValid(source, target) {
return arr.every(function (el) {
return el.value !== 3;
});
}
与Array#some
一样
function isValid(source, target) {
return !arr.some(function (el) {
return el.value === 3;
});
}
你不能。
请参阅MDN的文档:
没有办法停止或破坏forEach()循环,而不是抛出异常。 如果你需要这样的行为,forEach()方法是错误的工具,请使用纯循环代替。 如果您正在为谓词测试数组元素并需要布尔返回值,则可以使用every()或some()来代替。 如果可用,则新方法find()或findIndex()也可用于提前终止真谓词。
会很好地使用正常for in
,但与forEach
你可以这样做:
function isValid(source, target) {
var r = true;
arr.forEach(function (el) {
if (el.value === 3) {
r = false;
return false; // terminate loop
}
});
return r;
}
链接地址: http://www.djcxy.com/p/70063.html
上一篇: Return value for function instead of inner function in Array.forEach
下一篇: How can I break out of forEach or re structure my function?