-1

どちらの場合も10 個ko.observableArray([])の文字列名を持っているので、並べ替えたいと思います。

前もって感謝します !!

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

これにより、employees 配列が name プロパティの昇順で並べ替えられるため、employee[0] は「Ashutosh」、employee 1は「Manisha」などになります。

ここでは、2 つの文字列a.nameを比較し、それに応じてb.nameいずれかを返します-1, 1, or 0。これは、関数が渡されずに sort() メソッドによって非明示的に使用される式とまったく同じです。

お気づきかもしれませんが、JavaScript では 2 つの文字列を (アルファベット順に) 比較できます。詳細については、javascriptkitを参照してください。

于 2013-10-13T15:52:07.113 に答える