Javascript对象排序不工作
javascript object sorting not working
我有一个排序函数,它工作得很好,但后来我试图添加一个toggle位(排序asc/desc)和一些东西打破了,我不能弄清楚。在下面的代码中,sortArray是一个对象数组,sortBy是对象中要排序的项,sortDir是asc或desc。因此,例如,如果用户想按设计人员排序,那么itemA和itemB将是a.designer和b.designer,或者我使用它是a[sortBy] b[sortBy]。如果我设置了console. logitema,它们看起来很好,它们正是我所期望的。
但是,如果我插入这段代码:
if (itemA < itemB); //sort string ascending
console.log("a<b");
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;
}
语法错误:
代替if (itemA < itemB);
if (itemA < itemB)
不是语法错误,而是多了一个分号。
查找.reverse()在js中的数组。这并不能解决问题,但它可以满足您的需求。
相关文章:
- JavaScript排序函数未按预期工作
- 这个JS排序函数是如何工作的
- Javascript表排序工作得很好,但对所有索引进行迭代会得到不同的结果
- 为什么本机浏览器排序功能的工作速度比快速排序慢
- jqGrid不工作排序进程不工作
- Rails3-可排序列表不能与wysihtml5一起工作
- 当许多元素相等时,Javascript数组排序无法正常工作
- js 数组排序无法正常工作
- 可排序的 Js 在带有选择/选项标签的 chrome 中不起作用,但与 ul/li 标签一起工作
- “appendTo”-方法在将可拖动元素连接到 jQueryUI 中的可排序元素时无法正常工作
- 函数内的排序脚本无法正常工作
- jQuery单击排序并重置无法正常工作
- AngularJS 按整数字段排序无法正常工作
- jQuery UI 可排序和内容可编辑=true 不协同工作
- aa数据表中的排序无法正常工作
- 流星收集排序未按预期工作
- JQuery 可排序、可拖动和可拖放不协同工作
- JavaScript排序函数是如何工作的(作为一种算法)
- Backbone.js-排序和迭代-比较器不工作
- 可以在FireFox中工作,但不能在IE中工作.排序的