我有以下小提琴,这是我的尝试
我的问题是我希望能够排序而不考虑排序时的值的情况......我注意到它考虑了这种情况并将大写值放在首位。
我相当肯定它是在某个地方集成.toLowerCase()的问题,但我的所有尝试都失败了。在哪里/如何应用.toLowerCase()来使排序不区分大小写?
function sortResults(prop, asc) {
//SORT THE ARRAY BY THE PASSED NODE VALUE...
myArray.jsonData = myArray.jsonData.sort(function(a, b) {
if (asc) return (a[prop]> b[prop]) ? 1 : ((a[prop] < b[prop]) ? -1 : 0);
else return (b[prop] > a[prop]) ? 1 : ((b[prop] < a[prop]) ? -1 : 0);
});
showInDOM();
}
答案 0 :(得分:1)
使用函数toLowerCase()并使用+ ""
myArray.jsonData.sort(function(a, b) {
var comp = ((a[prop]+"").toLowerCase() >
(b[prop]+"").toLowerCase()) ? 1 : -1 ;
return asc ? comp : -comp;
});
答案 1 :(得分:-1)
如果您总是对字符串进行排序,则可以使用:
function(a,b){
return a.toLowerCase() > b.toLowerCase();
}
在你的例子中将是:
myArray.jsonData.sort(function(a,b){
var result,
av=a[prop].toLowerCase(),
bv=b[prop].toLowerCase();
return asc ? av > bv : av < bv;
}