-1

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

提前致谢 !!

4

1 回答 1

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)
    });

这将按 name 属性升序​​对employees 数组进行排序,因此employee[0] 是“Ashutosh”,employee 1是“Manisha”,依此类推。

在这里,我们比较两个字符串并相应a.nameb.name返回-1, 1, or 0排序,这正是 sort() 方法不明确使用的公式,没有传入任何函数。

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

于 2013-10-13T15:52:07.113 回答