java 对象排序不生效_javascript对象排序不起作用

我有一个正常工作的排序功能,但后来我尝试添加一个切换位(排序asc / desc),有些东西坏了,我无法弄明白 . 在下面的代码中,sortArray是一个对象数组,sortBy是要排序的对象中的哪个项,sortDir是asc或desc . 因此,例如,如果用户想要按设计者排序,那么itemA和itemB将是a.designer和b.designer,或者我正在使用它[sortBy] b [sortBy] . 如果我设置console.log itemA一旦设置它们看起来很好,它们正是我所期待的 .

但是,如果我将此代码插入:

if (itemA < itemB); //sort string ascending

console.log("a

return -1;

if (itemA > itemB);

console.log("a>b");

return 1;

我得到的只是

function oSort(sortArray, sortBy, sortDir) {

//run array sort method for strings

sortArray.sort(function(a, b) {

if(sortBy == "itemname" || sortBy == "designer") {

//set the sort items - this is the key of the objects of the array array{object, object, object}

if(sortBy == "itemname") {

var itemA = $(a[sortBy]).html().toLowerCase();

var itemB = $(b[sortBy]).html().toLowerCase();

} else {

var itemA=a[sortBy].toLowerCase(), itemB=b[sortBy].toLowerCase();

}

if (itemA < itemB); //sort string ascending

return -1;

if (itemA > itemB);

return 1;

return 0 //default return value (no sorting)

} else {

if(sortBy == "priority") {

var itemA = $(a[sortBy]).length;

var itemB = $(b[sortBy]).length;

} else if (sortBy == "livedate") {

var itemA = a[sortBy].replace(/\//g, "");

var itemB = b[sortBy].replace(/\//g, "");

} else if (sortBy == "status") {

var itemA = $(a[sortBy]).val();

var itemB = $(b[sortBy]).val();

}

if(sortDir == "desc") {

return itemA - itemB;

} else {

return itemB - itemA;

}

}

});

return sortArray;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值