我正在使用javascript排序方法。我想按顺序1,4,3,0排序项目的doc_requirement键 但我得到的顺序是4,3,1,0。 如何实现特定的顺序而不是按升序或降序排序?
var items = [
{ doc_requirement :4},
{ doc_requirement: 3 },
{ doc_requirement:3 },
{doc_requirement: 0 },
{ doc_requirement: 1 },
{ doc_requirement: 3 }
];
items.sort(function(firstDoc, secondDoc) {
if(firstDoc.doc_requirement < secondDoc.doc_requirement){
return true;
} else if(firstDoc.doc_requirement == secondDoc.doc_requirement){
return true;
} else{
return false;
}
});
预期输出
var items =[ { doc_requirement: 1 },
{ doc_requirement: 4 },
{ doc_requirement: 3 },
{ doc_requirement: 3 },
{ doc_requirement: 3 },
{ doc_requirement: 0 } ]
答案 0 :(得分:3)
你的排序函数应该返回整数,而不是布尔值(来源:Array.prototype.sort())。它应该是这样的:
function compare(a, b) {
var order = [1, 4, 3, 0];
var i1 = order.indexOf(a.doc_requirement);
var i2 = order.indexOf(b.doc_requirement);
return i1 - i2;
}
在您的情况下,您可以使用此:
$scope.$on('$ionicView.beforeEnter', function () {
$scope.viewColor = "positive";
});