gpt4 book ai didi

javascript - 从 underscore.js 解释这一行

转载 作者:行者123 更新时间:2023-11-30 06:29:35 24 4
gpt4 key购买 nike

你能给我解释一下来自 underscore.js 的语句中的一行吗:

_.every = _.all = function(obj, iterator, context) {
var result = true;

each(obj, function(value, index, list) {
---> if (!(result = result && iterator.call(context, value, index, list)))
return breaker;
});

return !!result;
};

我不明白这一行 (result = result && iterator.call... 为什么他需要 result 在相等的右边部分。是否作者只是想将 iterator.call(...) 转换为 bool 值?例如他想做的只是

if (!(result = !!iterator.call(context, value, index, list))) // "!!" used

最佳答案

与您的声明的不同之处在于,您将 !!iterator.call 的最后一个值的值赋予 result 而在原始代码中 resultfalse 一旦 iterator.call 返回 false 至少一次迭代。

在原始代码中,只有当 iterator.call所有 次迭代返回 true 时,result 才为 true

关于javascript - 从 underscore.js 解释这一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18673028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com