Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript函数说明-Knockout.js_Javascript_Jquery_Knockout.js - Fatal编程技术网

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函数是如何工作的。非常感谢。