我想用项目对两个列表进行排序,并按名称中的firstletter按字母顺序排序。
我试过这个,没有任何成功:
var ViewModel = function() {
var self = this;
self.storedProceduresInDB1 = ko.observableArray([{
Name: "A",
Id: 1
}, {
Name: "C",
Id: 3
}, {
Name: "B",
Id: 4
}, {
Name: "D",
Id: 2
}]);
self.storedProceduresInDB2 = ko.observableArray([{
Name: "C",
Id: 3
}, {
Name: "E",
Id: 8
}, {
Name: "F",
Id: 7
}, {
Name: "B",
Id: 4
}]);
self.sortLists = function () {
self.storedProceduresInDB1.sort(function (left, right) {
return left.name == right.name ? 0 : (left.name < right.name ? -1 : 1);
});
self.storedProceduresInDB2.sort(function (left, right) {
return left.name == right.name ? 0 : (left.name < right.name ? -1 : 1);
});
};
}
答案 0 :(得分:3)
在您的JSFiddle中,问题是JavaScript区分大小写,并且您的代码与其外壳不一致。 storedProceduresInDB1
和storedProceduresInDB2
中的对象有一个Name
键,而您的排序代码正在尝试引用name
(注意小写的N)。