Knockout.js 比较两个可观测阵列可以得到不同元素的空inspite

Knockout.js 比较两个可观测阵列可以得到不同元素的空inspite,knockout.js,Knockout.js,我试图比较两个可观测阵列。 但是ko.utils.comparararays无法为我提供两个可观测阵列之间的不同元素 这是我的 我是否错过了一些东西。应该是ko.utils.comparararlays(self.x(),self.y()) x和y没有声明。只有self.x和self.y是。它们也是可观察的数组,因此需要对它们进行评估,即self.x() 之后,您将注意到这些差异是在对象中构建的,其中status属性包含差异,value包含该值。要仅显示添加的项目,您可以在视图中使用if: &l

我试图比较两个可观测阵列。 但是ko.utils.comparararays无法为我提供两个可观测阵列之间的不同元素

这是我的


我是否错过了一些东西。

应该是
ko.utils.comparararlays(self.x(),self.y())

x和y没有声明。只有self.x和self.y是。它们也是可观察的数组,因此需要对它们进行评估,即
self.x()

之后,您将注意到这些差异是在对象中构建的,其中status属性包含差异,value包含该值。要仅显示添加的项目,您可以在视图中使用if:

<div class='liveExample'>   
   <ul data-bind="foreach:differ">
       <!-- ko if: status == 'added' -->
       <li data-bind="text:'\'' + value + '\''"></li>
       <!-- /ko -->
    </ul>
</div>


此js小提琴将显示添加的项目:

谢谢。我的坏消息是我更新错了。新的。正如你们所看到的,我无法得到数组之间不同的元素,所以当它显示object时,就意味着差异在object中。找到它的简单方法是将它放在浏览器的控制台上。然后在浏览器中打开开发人员工具,您可以看到对象的结构。然后,您可以根据我看到的不同元素的添加状态调整视图。那么所有不同的元素都将具有“添加”状态?如果是这样,我们可以过滤掉“添加”状态的元素。是的,我知道了。我真的没有在网上找到足够的敲除数组函数api文档,因此很难进行跟踪。谢谢,是的。Knockmeout有一些文档:
<div class='liveExample'>   
   <ul data-bind="foreach:differ">
       <!-- ko if: status == 'added' -->
       <li data-bind="text:'\'' + value + '\''"></li>
       <!-- /ko -->
    </ul>
</div>