致力于编程挑战,以在标准javascript中重新实现underscore.js的功能.具体来说,我正在努力实现该_.some功能.(http://underscorejs.org/#some)我正在努力的部分是它要求我找到一种方法来在_.every内部解决它.(http://underscorejs.org/#every)
我已经完成了_.every早期的功能,它可以正常工作.
逻辑上,这是我想要在草绘代码中做的事情:
_.some = function(collection, truthStatementFunction) {
return !(_every(collection, !truthStatementFunction))
}
Run Code Online (Sandbox Code Playgroud)
或者在英语中,翻转真值陈述以测试条件为假的位置......如果_.every测试然后返回true ...那么我们知道_.some的原始真值陈述是假的(所以翻转返回_.every得到正确的回报_some).同样,如果_.every返回false,则将其翻转以获得正确的true返回值_.some.
显然,这个草图的问题是这个!truthStatementFunction部分.如何进入迭代器以更改函数的内部以翻转它?似乎没有功能的内部可访问...
我是否完全咆哮错误的树,有更好的方法来解决这个问题_.every吗?
function makeIncreaseByFunction(increaseByAmount) {
return function (numberToIncrease) {
return numberToIncrease + increaseByAmount;
};
}
makeIncreaseByFunction(3)(10);
Run Code Online (Sandbox Code Playgroud)
为Clarity更新了 有人可以解释为什么(3)(10)的写法是这样的吗?我知道10是作为内部函数的参数提供的,但为什么语法上会这样注明?如果我们有三个嵌套函数,那么参数总是按照(3)(10)(20)中的顺序写出来吗?
已经找到了解决方案但没有找到解决方案.
$(document).ready(function() {
if ($("input").value()) {
$("h1").hide();
}
}
Run Code Online (Sandbox Code Playgroud)
所以这似乎不起作用($("h1").hide()只是一个占位符动作......那部分并不重要,问题是if语句不起作用).
页面上有一个表单<input type=text>.我想这样做,以便在任何时候,如果输入框中有任何文本,则应用某种状态.如果输入框返回为空,则删除状态.
函数内部有很多其他函数$(document).ready由于清晰而省略了...但就if语句所在的范围而言,它直接位于document.ready函数内部.PS表单是动态显示和隐藏的,但它是硬编码的 - 它不是动态创建的.
我有这个if语句的位置有什么问题?