在一本書上的範例中,實作以下內容,卻沒有書中的結果,大家可以幫忙看看哪邊有問題嗎?
var arr2 = [{name:"Suzanne"},{name:"Jim"},{name:"Trevor"},{name:"Amanda"}];
arr2.sort((a,b)=> a.name > b.name);
console.log( arr2);
不知道為什麼,排序仍然和之原先矩陣相同?
不知道為什麼
我的會排序
因為我原來沒看到 Node.js
所以我只用單純的 javascript 測試
才會和你的結果不一樣
試試看這個版本
var arr2 = [{name:"Suzanne"},{name:"Jim"},{name:"Trevor"},{name:"Amanda"}];
arr2.sort(function(a, b) {
var nameA=a.name.toLowerCase(), nameB=b.name.toLowerCase();
if (nameA < nameB) //sort string ascending
return -1;
if (nameA > nameB)
return 1;
return 0; //default return value (no sorting)
});
console.log( arr2);
可以耶...,感謝你.
再請教你原先是用什麼測試呢?
你的sort沒有回傳值(大於等於則回傳1,反之回傳-1)
你改一下sort的內容
arr2.sort((a,b)=>{
return a>=b ? 1 : -1 ;
});
console.log( arr2);