javascript - ণবর - স্বাভাবিক সংখ্যা কি কি




সঠিকভাবে পূর্ণসংখ্যা একটি অ্যারের সাজানোর কিভাবে (12)

হালনাগাদ! smartSort জন্য উত্তর নীচে স্ক্রোল এমনকি আরও মজা দেয়!
কিছু অ্যারে টাইপ!

এই ফাংশনের আমার ব্যক্তিগত প্রিয় ফর্ম আসন্ন করার জন্য একটি প্যারামিটারের জন্য অনুমতি দেয়, বা ক্রমবর্ধমান:

function intArraySort(c, a) {
    function d(a, b) { return b - a; }
    "string" == typeof a && a.toLowerCase();
    switch (a) {
        default: return c.sort(function(a, b) { return a - b; });
        case 1:
                case "d":
                case "dc":
                case "desc":
                return c.sort(d)
    }
};

হিসাবে সহজ হিসাবে ব্যবহার:

var ara = function getArray() {
        var a = Math.floor(Math.random()*50)+1, b = [];
        for (i=0;i<=a;i++) b.push(Math.floor(Math.random()*50)+1);
        return b;
    }();

//    Ascending
intArraySort(ara);
console.log(ara);

//    Descending
intArraySort(ara, 1);
console.log(ara);

//    Ascending
intArraySort(ara, 'a');
console.log(ara);

//    Descending
intArraySort(ara, 'dc');
console.log(ara);

//    Ascending
intArraySort(ara, 'asc');
console.log(ara);

jsFiddle

অথবা কোড স্নিপেট উদাহরণ এখানে!

function intArraySort(c, a) {
	function d(a, b) { return b - a }
	"string" == typeof a && a.toLowerCase();
	switch (a) {
		default: return c.sort(function(a, b) { return a - b });
		case 1:
		case "d":
		case "dc":
		case "desc":
		return c.sort(d)
	}
};

function tableExample() {
	var d = function() {
			var a = Math.floor(50 * Math.random()) + 1,
				b = [];
			for (i = 0; i <= a; i++) b.push(Math.floor(50 * Math.random()) + 1);
			return b
		},
		a = function(a) {
			var b = $("<tr/>"),
				c = $("<th/>").prependTo(b);
			$("<td/>", {
				text: intArraySort(d(), a).join(", ")
			}).appendTo(b);
			switch (a) {
				case 1:
				case "d":
				case "dc":
				case "desc":
					c.addClass("desc").text("Descending");
					break;
				default:
					c.addClass("asc").text("Ascending")
			}
			return b
		};
	return $("tbody").empty().append(a(), a(1), a(), a(1), a(), a(1), a(), a(1), a(), a(1), a(), a(1))
};

tableExample();
table { border-collapse: collapse; }
th, td { border: 1px solid; padding: .25em .5em; vertical-align: top; }
.asc { color: red; }
.desc { color: blue }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<table><tbody></tbody></table>

.smartSort ('asc' | 'desc')

এখন একাধিক আইটেম পূর্ণ একটি অ্যারে যে সাজানোর পদ্ধতি সঙ্গে আরো মজা আছে! বর্তমানে "সহযোগী" (উকিল, স্ট্রিং কী) কভার করে না, তবে এটি প্রতিটি মানের মান সম্পর্কে কভার করে! এটি কেবলমাত্র একাধিক মানগুলি asc বা desc অনুসারে desc , তবে এটি মানগুলির "গোষ্ঠী" এর স্থায়ী "অবস্থান" বজায় রাখবে। অন্য কথায়; Ints সর্বদা হয়, তারপর স্ট্রিং, তারপর অ্যারে আসা (হ্যাঁ, আমি এই বহুমাত্রিক তৈরীর!), তারপর বস্তু (unfiltered, উপাদান, তারিখ), এবং অবশেষে undefineds এবং nulls!

"কেন?" আপনি জিজ্ঞাসা করুন। কেন না!

এখন 2 স্বাদে আসে! যার প্রথমটি Array.protoype অবজেক্টের পদ্ধতিটি যুক্ত করার জন্য এটি Array.protoype Object.defineProperty ব্যবহার করে নতুন ব্রাউজারের প্রয়োজন। এটি প্রাকৃতিক ব্যবহারের সহজে ব্যবহারের জন্য অনুমতি দেয়, যেমন: myArray.smartSort('a') । আপনি যদি পুরানো ব্রাউজারগুলির জন্য বাস্তবায়ন করতে চান, অথবা আপনি কেবল স্থানীয় বস্তুগুলি সংশোধন করতে চান না তবে কেবল মেথড সংস্করণটিতে স্ক্রোল করুন।

/* begin */
/* KEY NOTE! Requires EcmaScript 5.1 (not compatible with older browsers) */
;;(function(){if(Object.defineProperty&&!Array.prototype.smartSort){var h=function(a,b){if(null==a||void 0==a)return 1;if(null==b||void 0==b)return-1;var c=typeof a,e=c+typeof b;if(/^numbernumber$/ig.test(e))return a-b;if(/^stringstring$/ig.test(e))return a>b;if(/(string|number){2}/ig.test(e))return/string/i.test(c)?1:-1;if(/number/ig.test(e)&&/object/ig.test(e)||/string/ig.test(e)&&/object/ig.test(e))return/object/i.test(c)?1:-1;if(/^objectobject$/ig.test(e)){a instanceof Array&&a.smartSort("a");b instanceof Array&&b.smartSort("a");if(a instanceof Date&&b instanceof Date)return a-b;if(a instanceof Array&&b instanceof Array){var e=Object.keys(a),g=Object.keys(b),e=e.concat(g).smartSort("a"),d;for(d in e)if(c=e[d],a[c]!=b[c])return d=[a[c],b[c]].smartSort("a"),a[c]==d[0]?-1:1;var f=[a[Object.keys(a)[0]],b[Object.keys(b)[0]]].smartSort("a");return a[Object.keys(a)[0]]==f[0]?-1:1}if(a instanceof Element&&b instanceof Element){if(a.tagName==b.tagName)return e=[a.id,b.id].smartSort("a"),a.id==e[0]?1:-1;e=[a.tagName, b.tagName].smartSort("a");return a.tagName==e[0]?1:-1}if(a instanceof Date||b instanceof Date)return a instanceof Date?1:-1;if(a instanceof Array||b instanceof Array)return a instanceof Array?-1:1;e=Object.keys(a);g=Object.keys(b);e.concat(g).smartSort("a");for(c=0;20>c;c++){d=e[c];f=g[c];if(a.hasOwnProperty(d)&&b.hasOwnProperty(f)){if(a[d]instanceof Element&&b[f]instanceof Element){if(a[d].tagName==b[f].tagName)return c=[a[d].id,b[f].id].smartSort("a"),a[d].id==c[0]?-1:1;c=[a[d].tagName,b[f].tagName].smartSort("d"); return a[d].tagName==c[0]?1:-1}if(a[d]instanceof Element||b[f]instanceof Element)return a[d]instanceof Element?1:-1;if(a[d]!=b[f])return c=[a[d],b[f]].smartSort("a"),a[d]==c[0]?-1:1}if(a.hasOwnProperty(d)&&a[d]instanceof Element)return 1;if(b.hasOwnProperty(f)&&b[f]instanceof Element||!a.hasOwnProperty(d))return-1;if(!b.hasOwnProperty(d))return 1}c=[a[Object.keys(a)[0]],b[Object.keys(b)[0]]].smartSort("d");return a[Object.keys(a)[0]]==c[0]?-1:1}g=[a,b].sort();return g[0]>g[1]},k=function(a,b){if(null== a||void 0==a)return 1;if(null==b||void 0==b)return-1;var c=typeof a,e=c+typeof b;if(/^numbernumber$/ig.test(e))return b-a;if(/^stringstring$/ig.test(e))return b>a;if(/(string|number){2}/ig.test(e))return/string/i.test(c)?1:-1;if(/number/ig.test(e)&&/object/ig.test(e)||/string/ig.test(e)&&/object/ig.test(e))return/object/i.test(c)?1:-1;if(/^objectobject$/ig.test(e)){a instanceof Array&&a.smartSort("d");b instanceof Array&&b.smartSort("d");if(a instanceof Date&&b instanceof Date)return b-a;if(a instanceof Array&&b instanceof Array){var e=Object.keys(a),g=Object.keys(b),e=e.concat(g).smartSort("a"),d;for(d in e)if(c=e[d],a[c]!=b[c])return d=[a[c],b[c]].smartSort("d"),a[c]==d[0]?-1:1;var f=[a[Object.keys(a)[0]],b[Object.keys(b)[0]]].smartSort("d");return a[Object.keys(a)[0]]==f[0]?-1:1}if(a instanceof Element&&b instanceof Element){if(a.tagName==b.tagName)return e=[a.id,b.id].smartSort("d"),a.id==e[0]?-1:1;e=[a.tagName,b.tagName].smartSort("d");return a.tagName==e[0]?-1:1}if(a instanceof Date||b instanceof Date)return a instanceof Date?1:-1;if(a instanceof Array||b instanceof Array)return a instanceof Array?-1:1;e=Object.keys(a);g=Object.keys(b);e.concat(g).smartSort("a");for(c=0;20>c;c++){d=e[c];f=g[c];if(a.hasOwnProperty(d)&&b.hasOwnProperty(f)){if(a[d]instanceof Element&&b[f]instanceof Element){if(a[d].tagName==b[f].tagName)return c=[a[d].id,b[f].id].smartSort("d"),a[d].id==c[0]?-1:1;c=[a[d].tagName,b[f].tagName].smartSort("d");return a[d].tagName==c[0]?-1:1}if(a[d]instanceof Element||b[f]instanceof Element)return a[d]instanceof Element?1:-1;if(a[d]!=b[f])return c=[a[d],b[f]].smartSort("d"),a[d]==c[0]?-1:1}if(a.hasOwnProperty(d)&&a[d]instanceof Element)return 1;if(b.hasOwnProperty(f)&&b[f]instanceof Element)return-1;if(!a.hasOwnProperty(d))return 1;if(!b.hasOwnProperty(d))return-1}c=[a[Object.keys(a)[0]],b[Object.keys(b)[0]]].smartSort("d");return a[Object.keys(a)[0]]==c[0]?-1:1}g=[a,b].sort();return g[0]<g[1]};Object.defineProperty(Array.prototype,"smartSort",{value:function(){return arguments&& (!arguments.length||1==arguments.length&&/^a([sc]{2})?$|^d([esc]{3})?$/i.test(arguments[0]))?this.sort(!arguments.length||/^a([sc]{2})?$/i.test(arguments[0])?h:k):this.sort()}})}})();
/* end */

jsFiddle Array.prototype.smartSort ('asc | desc')

ব্যবহার সহজ! প্রথম মত কিছু পাগল অ্যারে করা:

window.z = [ 'one', undefined, $('<span />'), 'two', null, 2, $('<div />', { id: 'Thing' }), $('<div />'), 4, $('<header />') ];
z.push(new Date('1/01/2011'));
z.push('three');
z.push(undefined);
z.push([ 'one', 'three', 'four' ]);
z.push([ 'one', 'three', 'five' ]);
z.push({ a: 'a', b: 'b' });
z.push({ name: 'bob', value: 'bill' });
z.push(new Date());
z.push({ john: 'jill', jack: 'june' });
z.push([ 'abc', 'def', [ 'abc', 'def', 'cba' ], [ 'cba', 'def', 'bca' ], 'cba' ]);
z.push([ 'cba', 'def', 'bca' ]);
z.push({ a: 'a', b: 'b', c: 'c' });
z.push({ a: 'a', b: 'b', c: 'd' });

তারপর সহজভাবে এটি সাজান!

z.smartSort('asc'); // Ascending
z.smartSort('desc'); // Descending

পদ্ধতি শুধুমাত্র

পূর্ববর্তী হিসাবে একই, শুধু একটি সহজ পদ্ধতি ছাড়া!

/* begin */
/* KEY NOTE! Method `smartSort` is appended to native `window` for global use. If you'd prefer a more local scope, simple change `window.smartSort` to `var smartSort` and place inside your class/method */
window.smartSort=function(){if(arguments){var a,b,c;for(c in arguments)arguments[c]instanceof Array&&(a=arguments[c],void 0==b&&(b="a")),"string"==typeof arguments[c]&&(b=/^a([sc]{2})?$/i.test(arguments[c])?"a":"d");if(a instanceof Array)return a.sort("a"==b?smartSort.asc:smartSort.desc)}return this.sort()};smartSort.asc=function(a,b){if(null==a||void 0==a)return 1;if(null==b||void 0==b)return-1;var c=typeof a,e=c+typeof b;if(/^numbernumber$/ig.test(e))return a-b;if(/^stringstring$/ig.test(e))return a> b;if(/(string|number){2}/ig.test(e))return/string/i.test(c)?1:-1;if(/number/ig.test(e)&&/object/ig.test(e)||/string/ig.test(e)&&/object/ig.test(e))return/object/i.test(c)?1:-1;if(/^objectobject$/ig.test(e)){a instanceof Array&&a.sort(smartSort.asc);b instanceof Array&&b.sort(smartSort.asc);if(a instanceof Date&&b instanceof Date)return a-b;if(a instanceof Array&&b instanceof Array){var e=Object.keys(a),g=Object.keys(b),e=smartSort(e.concat(g),"a"),d;for(d in e)if(c=e[d],a[c]!=b[c])return d=smartSort([a[c], b[c]],"a"),a[c]==d[0]?-1:1;var f=smartSort([a[Object.keys(a)[0]],b[Object.keys(b)[0]]],"a");return a[Object.keys(a)[0]]==f[0]?-1:1}if(a instanceof Element&&b instanceof Element){if(a.tagName==b.tagName)return e=smartSort([a.id,b.id],"a"),a.id==e[0]?1:-1;e=smartSort([a.tagName,b.tagName],"a");return a.tagName==e[0]?1:-1}if(a instanceof Date||b instanceof Date)return a instanceof Date?1:-1;if(a instanceof Array||b instanceof Array)return a instanceof Array?-1:1;e=Object.keys(a);g=Object.keys(b);smartSort(e.concat(g), "a");for(c=0;20>c;c++){d=e[c];f=g[c];if(a.hasOwnProperty(d)&&b.hasOwnProperty(f)){if(a[d]instanceof Element&&b[f]instanceof Element){if(a[d].tagName==b[f].tagName)return c=smartSort([a[d].id,b[f].id],"a"),a[d].id==c[0]?-1:1;c=smartSort([a[d].tagName,b[f].tagName],"a");return a[d].tagName==c[0]?-1:1}if(a[d]instanceof Element||b[f]instanceof Element)return a[d]instanceof Element?1:-1;if(a[d]!=b[f])return c=smartSort([a[d],b[f]],"a"),a[d]==c[0]?-1:1}if(a.hasOwnProperty(d)&&a[d]instanceof Element)return 1; if(b.hasOwnProperty(f)&&b[f]instanceof Element||!a.hasOwnProperty(d))return-1;if(!b.hasOwnProperty(d))return 1}c=smartSort([a[Object.keys(a)[0]],b[Object.keys(b)[0]]],"a");return a[Object.keys(a)[0]]==c[0]?1:-1}g=[a,b].sort();return g[0]>g[1]};smartSort.desc=function(a,b){if(null==a||void 0==a)return 1;if(null==b||void 0==b)return-1;var c=typeof a,e=c+typeof b;if(/^numbernumber$/ig.test(e))return b-a;if(/^stringstring$/ig.test(e))return b>a;if(/(string|number){2}/ig.test(e))return/string/i.test(c)? 1:-1;if(/number/ig.test(e)&&/object/ig.test(e)||/string/ig.test(e)&&/object/ig.test(e))return/object/i.test(c)?1:-1;if(/^objectobject$/ig.test(e)){a instanceof Array&&a.sort(smartSort.desc);b instanceof Array&&b.sort(smartSort.desc);if(a instanceof Date&&b instanceof Date)return b-a;if(a instanceof Array&&b instanceof Array){var e=Object.keys(a),g=Object.keys(b),e=smartSort(e.concat(g),"a"),d;for(d in e)if(c=e[d],a[c]!=b[c])return d=smartSort([a[c],b[c]],"d"),a[c]==d[0]?-1:1;var f=smartSort([a[Object.keys(a)[0]], b[Object.keys(b)[0]]],"d");return a[Object.keys(a)[0]]==f[0]?-1:1}if(a instanceof Element&&b instanceof Element){if(a.tagName==b.tagName)return e=smartSort([a.id,b.id],"d"),a.id==e[0]?-1:1;e=smartSort([a.tagName,b.tagName],"d");return a.tagName==e[0]?-1:1}if(a instanceof Date||b instanceof Date)return a instanceof Date?1:-1;if(a instanceof Array||b instanceof Array)return a instanceof Array?-1:1;e=Object.keys(a);g=Object.keys(b);smartSort(e.concat(g),"a");for(c=0;20>c;c++){d=e[c];f=g[c];if(a.hasOwnProperty(d)&& b.hasOwnProperty(f)){if(a[d]instanceof Element&&b[f]instanceof Element){if(a[d].tagName==b[f].tagName)return c=smartSort([a[d].id,b[f].id],"d"),a[d].id==c[0]?-1:1;c=smartSort([a[d].tagName,b[f].tagName],"d");return a[d].tagName==c[0]?-1:1}if(a[d]instanceof Element||b[f]instanceof Element)return a[d]instanceof Element?1:-1;if(a[d]!=b[f])return c=smartSort([a[d],b[f]],"d"),a[d]==c[0]?-1:1}if(a.hasOwnProperty(d)&&a[d]instanceof Element)return 1;if(b.hasOwnProperty(f)&&b[f]instanceof Element)return-1; if(!a.hasOwnProperty(d))return 1;if(!b.hasOwnProperty(d))return-1}c=smartSort([a[Object.keys(a)[0]],b[Object.keys(b)[0]]],"d");return a[Object.keys(a)[0]]==c[0]?-1:1}g=[a,b].sort();return g[0]<g[1]}
/* end */

ব্যবহার করুন:

z = smartSort(z, 'asc'); // Ascending
z = smartSort(z, 'desc'); // Descending

জেএসফিল্ড মেথড স্মার্টসোর্ট (অ্যারে, "এস এস | এসআর")

একটি অ্যারের থেকে সর্বোচ্চ এবং সর্বনিম্ন মান পেতে চেষ্টা করে যা আমি জানি কেবলমাত্র পূর্ণসংখ্যাগুলি আমার মনে চেয়ে কঠিন হতে পারে।

var numArray = [140000, 104, 99];
numArray = numArray.sort();
alert(numArray)

আমি এই 99, 104, 140000 প্রদর্শন আশা করি। পরিবর্তে এটি 104, 140000, 99 দেখায়। সুতরাং মনে হচ্ছে সাজানোর মান স্ট্রিং হিসাবে পরিচালনা করা হয়।

সাজানোর ফাংশন আসলে পূর্ণসংখ্যা মান ক্রম পেতে একটি উপায় আছে?


সাজানোর ফাংশন তাই অদ্ভুত আচরণ কারণ

documentation থেকে:

[...] অ্যারের প্রতিটি উপাদান এর স্ট্রিং রূপান্তর অনুযায়ী, প্রতিটি চরিত্র এর ইউনিকোড কোড পয়েন্ট মান অনুসারে সাজানো হয়।

যদি আপনি অ্যারের documentation মুদ্রণ করেন তবে এটি স্পষ্ট হবে।

console.log("140000".charCodeAt(0));
console.log("104".charCodeAt(0));
console.log("99".charCodeAt(0));

//Note that we only look at the first index of the number "charCodeAt(  0  )"

এই ফেরত: "49, 49, 57"।

49 (unicode value of first number at 140000)
49 (unicode value of first number at 104)
57 (unicode value of first number at 99)

এখন, কারণ 140000 এবং 104 একই মান ফিরে পেয়েছে (49) এটি প্রথম সূচকে কাটায় এবং আবার চেক করে:

console.log("40000".charCodeAt(0));
console.log("04".charCodeAt(0));

//Note that we only look at the first index of the number "charCodeAt(  0  )"

52 (unicode value of first number at 40000)
40 (unicode value of first number at 04)

যদি আমরা এটি সাজান, তাহলে আমরা পেতে পারি:

40 (unicode value of first number at 04)
52 (unicode value of first number at 40000)

তাই 104 140000 আগে আসে।

তাই চূড়ান্ত ফলাফল হবে:

var numArray = [140000, 104, 99];
numArray = numArray.sort();
console.log(numArray)

104, 140000, 99

উপসংহার:

sort() শুধুমাত্র সংখ্যা প্রথম সূচক এ খুঁজছেন দ্বারা বাছাই করা হয়। sort() কোনও পুরো নম্বরটি অন্যের থেকে বড় না হলে এটি যত্ন করে না, এটি ডিজিটের ইউনিকোডের মানকে তুলনা করে এবং যদি দুটি সমান ইউনিকোড মান থাকে তবে এটি পরবর্তী সংখ্যার সংখ্যা এবং এটির সাথে তুলনা করে তা পরীক্ষা করে।

সঠিকভাবে বাছাই করার জন্য, আপনি here বর্ণিত মত sort() ফাংশন পাস করতে হবে।


অনির্ধারিত, নাল এবং NaN হ্যান্ডেল করতে: Null 0 মত আচরণ, NaN এবং অনির্ধারিত শেষ হয়।

array = [3, 5, -1, 1, NaN, 6, undefined, 2, null]
array.sort((a,b) => isNaN(a) || a-b)
// [-1, null, 1, 2, 3, 5, 6, NaN, undefined]

আমি aks সঙ্গে একমত, তবে ব্যবহার করার পরিবর্তে

return a - b;

আপনি ব্যবহার করা উচিত

return a > b ? 1 : a < b ? -1 : 0;

উপাদানগুলির একটি স্বাভাবিক অ্যারের জন্য শুধুমাত্র মান:

function sortArrayOfElements(arrayToSort) {
    function compareElements(a, b) {
        if (a < b)
            return -1;
        if (a > b)
            return 1;
        return 0;
    }

    return arrayToSort.sort(compareElements);
}

e.g. 1:
var array1 = [1,2,545,676,64,2,24]
**output : [1, 2, 2, 24, 64, 545, 676]**

var array2 = ["v","a",545,676,64,2,"24"]
**output: ["a", "v", 2, "24", 64, 545, 676]**

বস্তুর একটি অ্যারের জন্য:

function sortArrayOfObjects(arrayToSort, key) {
    function compareObjects(a, b) {
        if (a[key] < b[key])
            return -1;
        if (a[key] > b[key])
            return 1;
        return 0;
    }

    return arrayToSort.sort(compareObjects);
}

e.g. 1: var array1= [{"name": "User4", "value": 4},{"name": "User3", "value": 3},{"name": "User2", "value": 2}]

**output : [{"name": "User2", "value": 2},{"name": "User3", "value": 3},{"name": "User4", "value": 4}]**

এই উত্তরটি বিদ্যমান উত্তরগুলিতে কিছু সমতুল্য, তবে ECMAScript 6 তীর ফাংশনগুলি আরো বেশি কম্প্যাক্ট সিনট্যাক্স সরবরাহ করে যা আমাদের পঠনযোগ্যতা ছাড়াই ইনলাইন সাজানোর ফাংশন সংজ্ঞায়িত করতে দেয়।

numArray = numArray.sort((a, b) => a - b);

এটি আজ বেশিরভাগ ব্রাউজারে সমর্থিত।


এখানে utils লাইব্রেরি আমার সাজানোর অ্যারে ফাংশন:

sortArray: function(array) {
    array.sort(function(a, b) {
        return a > b;
    });
},

# Let's test a string array
var arr = ['bbc', 'chrome', 'aux', 'ext', 'dog'];
utils.sortArray(arr);
console.log(arr);
>>> ["aux", "bbc", "chrome", "dog", "ext", remove: function]

# Let's test a number array
var arr = [55, 22, 1425, 12, 78];
utils.sortArray(arr);
console.log(arr);
>>> [12, 22, 55, 78, 1425, remove: function]

কলব্যাক ফাংশন হিসাবে প্রদান করা হয় যখন অনেক ক্ষেত্রে সংখ্যাসূচক সংখ্যা অ্যারের সাজানোর উদ্দেশ্য নিচে 'সংখ্যাসূচকভাবে' ফাংশন কাজ করে:

function numerically(a, b){
    return a-b;
}

array.sort(numerically); 

কিন্তু কিছু বিরল উদাহরণগুলিতে, যেখানে অ্যারে খুব বড় এবং নেতিবাচক সংখ্যা ধারণ করে, এটির ফলে উল্লম্ব ত্রুটি ঘটতে পারে কারণ এটির ফলে জাভাস্ক্রিপ্টটি সামান্যতম সংখ্যার চেয়ে ছোট হতে পারে।

সুতরাং সংখ্যাসূচকভাবে ফাংশন লেখার একটি ভাল উপায় নিম্নরূপ:

function numerically(a, b){
   if(a < b){
      return -1;
   } else if(a > b){
      return 1;
   } else {
      return 0;
   }
}

ডিফল্টরূপে, সাজানোর পদ্ধতি বর্ণানুক্রমে উপাদানগুলি প্রকার করে। সংখ্যাসূচকভাবে সাজানোর জন্য সংখ্যাসূচক প্রকারগুলি পরিচালনা করে এমন একটি নতুন পদ্ধতি যোগ করুন (sortNumber, নীচে দেখানো হয়েছে) -

    function sortNumber(a,b) {
        return a - b;
    }
    
    var numArray = [140000, 104, 99];
    numArray.sort(sortNumber);
    alert(numArray.join(","));

সম্পাদনা করুন: ES6 তীর ফাংশন ব্যবহার করে:

numArray.sort((a, b) => a - b); // For ascending sort
numArray.sort((a, b) => b - a); // For descending sort

নতুন ES6 বিশ্বের এটি একটি সাজানোর অনেক সহজ

numArray.sort((a,b) => a-b);

আপনি প্রয়োজন সব Thats :)


প্রশ্নটি ইতিমধ্যেই উত্তর দেওয়া হয়েছে, সবচেয়ে ছোট উপায় হল sort() পদ্ধতিটি ব্যবহার করা। কিন্তু যদি আপনি সংখ্যাকে আপনার অ্যারে সাজানোর আরও উপায় অনুসন্ধান করেন এবং আপনি চক্রগুলিও ভালোবাসেন তবে নীচের চেক করুন

সন্নিবেশ সাজানোর

আরোহী:

var numArray = [140000, 104, 99];
for (var i = 0; i < numArray.length; i++) {
    var target = numArray[i];
    for (var j = i - 1; j >= 0 && (numArray[j] > target); j--) {
        numArray[j+1] = numArray[j];
    }
    numArray[j+1] = target
}
console.log(numArray);

নিম্নক্রম:

var numArray = [140000, 104, 99];
for (var i = 0; i < numArray.length; i++) {
    var target = numArray[i];
    for (var j = i - 1; j >= 0 && (numArray[j] < target); j--) {
        numArray[j+1] = numArray[j];
    }
    numArray[j+1] = target
}
console.log(numArray);

নির্বাচন সাজানোর:

আরোহী:

var numArray = [140000, 104, 99];
for (var i = 0; i < numArray.length - 1; i++) {
    var min = i;
    for (var j = i + 1; j < numArray.length; j++) {
        if (numArray[j] < numArray[min]) {
            min = j;
        }
    }
    if (min != i) {
        var target = numArray[i];
        numArray[i] = numArray[min];
        numArray[min] = target;
    }
}
console.log(numArray);

নিম্নক্রম:

var numArray = [140000, 104, 99];
for (var i = 0; i < numArray.length - 1; i++) {
    var min = i;
    for (var j = i + 1; j < numArray.length; j++) {
        if (numArray[j] > numArray[min]) {
            min = j;
        }
    }
    if (min != i) {
        var target = numArray[i];
        numArray[i] = numArray[min];
        numArray[min] = target;
    }
}
console.log(numArray);

আনন্দ কর


শুধু উপরের সব উত্তরের উপর ভিত্তি করে তৈরি করা, এগুলি এক লাইনেও করা যেতে পারে:

var numArray = [140000, 104, 99];

// ES5
numArray = numArray.sort(function (a, b) {  return a - b;  });

// ES2015
numArray = numArray.sort((a, b) => a - b);

//outputs: 99, 104, 140000




numbers