Javascript函数说明-Knockout.js
前几天我问了一个问题()。有人友好地回答,他们的回答符合我最初的意图。然而,有些代码我不明白,我希望有人能帮助我Javascript函数说明-Knockout.js,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,前几天我问了一个问题()。有人友好地回答,他们的回答符合我最初的意图。然而,有些代码我不明白,我希望有人能帮助我 self.currentlySelected = ko.computed(function() { return self.topics().reduce(function(count, topic) { return count + (topic.selected() ? 1 : 0); }, 0); }); 有人能解释一下这个函数在做
self.currentlySelected = ko.computed(function() {
return self.topics().reduce(function(count, topic) {
return count + (topic.selected() ? 1 : 0);
}, 0);
});
有人能解释一下这个函数在做什么吗?谢谢大家! 它说
currentlySelected
是一个计算属性-要查看它的值,必须对函数求值
功能说明:
1. Get the topics
2. Reduce the topics down to a single value, using the following function
3. If the topic is selected, add 1 to our running total (count).
Otherwise, add 0. Our initial value for count is 0.
它说,
currentlySelected
是一个计算属性-要查看它的值,必须对函数求值
功能说明:
1. Get the topics
2. Reduce the topics down to a single value, using the following function
3. If the topic is selected, add 1 to our running total (count).
Otherwise, add 0. Our initial value for count is 0.
它在你的主题列表上使用一个reduce方法,它遍历你的主题可观察数组中的每一项,检查它是否被选中,然后将所有这些项相加。也可能是这样的:
self.currentlySelected = ko.computed(function() {
var count = 0
for(var i = 0; i < self.topics().length; i++){
var topic = self.topics()[i]
if(topic.selected()){
count += 1;
}
}
return count
});
self.currentlySelected=ko.computed(函数(){
变量计数=0
for(var i=0;i
reduce方法是本机Javascript方法,可以找到更多方法
.computed方法是knockout.js,解释得很好它在主题列表上使用reduce方法,它遍历主题可观察数组中的每个项目,检查是否选中它,然后将所有这些项相加。也可能是这样的:
self.currentlySelected = ko.computed(function() {
var count = 0
for(var i = 0; i < self.topics().length; i++){
var topic = self.topics()[i]
if(topic.selected()){
count += 1;
}
}
return count
});
self.currentlySelected=ko.computed(函数(){
变量计数=0
for(var i=0;i
reduce方法是本机Javascript方法,可以找到更多方法
.computed方法是knockout.js,解释得很好让我们从头开始
self.topics().reduce(/*code…*/,0)
-这是调用存储在self.topics
中的数组。此函数用于集合并将其减少为单个值-在本例中,它是count+(topic.selected()?1:0)
,因此它返回所选主题的计数。最后一部分,即计数代码self.topics().reduce(/*code…*/,0)
后最后通过的零是计数的初始值。所以,从零开始,计算每个选定的主题,返回结果
ko.computed(function(){/*reduction code*/})
正在创建一个,它是一个可以自动更改的对象,如果它依赖于更改的任何观察值。在这种情况下,这是self.topics
-对这些主题的任何更改(如添加/删除它们)都将导致重新计算self.currentlySelected
,因此它将始终显示…当前选定的项。更具体地说,他们的数量。让我们从内到外开始
self.topics().reduce(/*code…*/,0)
-这是调用存储在self.topics
中的数组。此函数用于集合并将其减少为单个值-在本例中,它是count+(topic.selected()?1:0)
,因此它返回所选主题的计数。最后一部分,即计数代码self.topics().reduce(/*code…*/,0)
后最后通过的零是计数的初始值。所以,从零开始,计算每个选定的主题,返回结果
ko.computed(function(){/*reduction code*/})
正在创建一个,它是一个可以自动更改的对象,如果它依赖于更改的任何观察值。在这种情况下,这是self.topics
-对这些主题的任何更改(如添加/删除它们)都将导致重新计算self.currentlySelected
,因此它将始终显示…当前选定的项。更具体地说,它们的计数。我看到很多函数。。。你想了解哪一个<代码>减少.computed
?减少功能。我想我理解.reduce函数的功能,但我不理解它在上下文中是如何工作的。我看到了很多函数。。。你想了解哪一个<代码>减少.computed
?减少功能。我想我理解.reduce函数的功能,但我不理解它在上下文中是如何工作的。啊,我明白了。这就简单多了,我现在看到了reduce函数是如何工作的。谢谢。啊,我明白了。这就简单多了,我现在看到了reduce函数是如何工作的。非常感谢。