Knockout Js:可观察数组的SORT函数如何工作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Knockout Js:可观察数组的SORT函数如何工作相关的知识,希望对你有一定的参考价值。

我想要一个带有knockout排序方法的可观察数组,但根据文档,传递了两个字段。

myObservableArray.sort(function (left, right) { return left.lastName == right.lastName ? 0 : (left.lastName < right.lastName ? -1 : 1) })

左右参数从哪里获得,我是否传入它们,如果我有这样的数组

var dummyArray = [{letter: a, number: 4},{letter: f, number: 3},{letter: t, number: 2},{letter: v, number: 7},{letter: c, number: 9},] 

我该如何排序?

答案

我将它们传递给:

不,sort函数会这样做。排序需要比较两个值。所以你需要提供进行比较的功能

我该如何排序?:

取决于你想如何排序它们。通过letter?通过number?一个然后另一个?别的什么?你必须提供执行它的功能。

所以按number升序排序:

var dummyArray = [{letter: "a", number: 4},{letter: "f", number: 3},{letter: "t", number: 2},{letter: "v", number: 7},{letter: "c", number: 9}];

var koArray = ko.observableArray(dummyArray);

koArray.sort(function(l,r) { return l.number === r.number ? 0 : l.number < r.number ? -1 : 1; });

console.log(koArray())
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

以上是关于Knockout Js:可观察数组的SORT函数如何工作的主要内容,如果未能解决你的问题,请参考以下文章

Knockout.js:当可观察数组中的值发生变化时触发计算的最佳方法是啥

将多个输入绑定到可观察数组中的同一变量(Knockout.JS)

Knockout JS:从 viewmodel 可观察数组创建 Json

Knockout JS,如何在更改可观察数组中的值时更改样式属性

Knockout JS - 在没有 ko.mapping 的情况下观察数组的任何属性中的突变

如何在 Knockout 中创建计算的可观察数组