对具有10个字符串值的ko.observableArray([])进行排序

时间:2013-10-13 15:44:11

标签: jquery knockout.js ko.observablearray

我在这两种情况下都有ko.observableArray([]) 10 字符串名称,希望它按排序顺序排列。

提前致谢!!

1 个答案:

答案 0 :(得分:1)

我们需要manually define the comparison function按字母顺序对数组进行排序,这反过来又允许我们指定此字符串数据的位置。请查看以下内容:DEMO

使用javascript来实现它,

var temp = users().sort(function (a, b) {
    var nameA = a.First.toLowerCase(),//Here 'First' is the attribute present in users()
        nameB = b.First.toLowerCase()
        if (nameA < nameB) //sort string ascending
            return -1
        if (nameA > nameB)
            return 1
        return 0 //default return value (no sorting)
})

在你的情况下应该是: -

    vm.allUsers().sort(function (a, b) {
        var nameA = a.Name.toLowerCase(),
            nameB = b.Name.toLowerCase()
            if (nameA < nameB) //sort string ascending
                return -1
            if (nameA > nameB)
                return 1
            return 0 //default return value (no sorting)
    });

这将按名称属性升序对employees数组进行排序,因此员工[0]是&#34; Ashutosh&#34;员工1是&#34; Manisha&#34;等等。

在这里,我们将两个字符串a.nameb.name进行比较,并相应地返回-1, 1, or 0进行排序,确切地说,sort()方法不明确地使用了公式而没有传入任何函数。< / p>

正如您刚刚发现的那样,在JavaScript中,您当然可以比较两个字符串(按字母顺序排列)。有关详细信息,请查看javascriptkit