চার্লস-ক্লেটন এবং @ বিকাশ-গৌতমের কাঁধে দাঁড়িয়ে আমি স্ট্রিং টেস্টটি যুক্ত করেছিলাম যা কোনও কলামে ওপি-র মতো স্ট্রিং থাকলে প্রয়োজন হয়।
return isNaN(a-b) ? (a === b) ? 0 : (a < b) ? -1 : 1 : a-b ;
isNaN(a-b)স্ট্রিং সংখ্যার সাথে জোর করা যায় না কিনা তা পরীক্ষাটি নির্ধারণ করে। যদি তারা পারেন তবে a-bপরীক্ষাটি বৈধ।
নোট করুন যে মিশ্র প্রকারের কলামটি বাছাই করা সর্বদা একটি আনন্দদায়ক ফলাফল দেয় কারণ কঠোর সাম্যতা পরীক্ষা (a === b)সর্বদা মিথ্যা ফেরত আসবে।
এমডিএন এখানে দেখুন
গুগল অ্যাপস স্ক্রিপ্ট ব্যবহার করে - এটি লগার পরীক্ষার সাথে সম্পূর্ণ স্ক্রিপ্ট।
function testSort(){
function sortByCol(arr, colIndex){
arr.sort(sortFunction);
function sortFunction(a, b) {
a = a[colIndex];
b = b[colIndex];
return isNaN(a-b) ? (a === b) ? 0 : (a < b) ? -1 : 1 : a-b ;
}
}
var a = [ [12,'12', 'AAA'],
[12,'11', 'AAB'],
[58,'120', 'CCC'],
[28,'08', 'BBB'],
[18,'80', 'DDD'],
]
var arr1 = a.map(function (i){return i;}).sort();
Logger.log("Original unsorted:\n " + JSON.stringify(a));
Logger.log("Vanilla sort:\n " + JSON.stringify(arr1));
sortByCol(a, 0);
Logger.log("By col 0:\n " + JSON.stringify(a));
sortByCol(a, 1);
Logger.log("By col 1:\n " + JSON.stringify(a));
sortByCol(a, 2);
Logger.log("By col 2:\n " + JSON.stringify(a));
}