JavaScript 数组排序
- পূর্ববর্তী পৃষ্ঠা JS আইন্টারভেল সার্চ
- পরবর্তী পৃষ্ঠা JS আইন্টারভেল ইটারেশন
sort()
একটি একাডেমিক সমস্যা সমাধান হল একটি অত্যন্ত শক্তিশালী এক্সেস পদ্ধতি:
এক্সেস করা পদ্ধতি একটি একাডেমিক সমস্যা সমাধান:
sort()
শব্দক্রমে আক্সেস করা পদ্ধতি একটি একাডেমিক সমস্যা সমাধান:
ইনস্ট্যান্স
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // fruits-এর এলিমেন্টস সাজানো
এলিমেন্টস ক্রমবর্ধমান ক্রমানুসারে সাজানো
reverse()
এই মেথড অর্থেক্ষক এলিমেন্টস ক্রমবর্ধমান ক্রমানুসারে সাজানো করে。
আপনি এটা ব্যবহার করে অর্থেক্ষক ক্রমানুসারে সাজানো করতে পারেন:
ইনস্ট্যান্স
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // fruits-এর এলিমেন্টস সাজানো fruits.reverse(); // এলিমেন্টস ক্রমবর্ধমান ক্রমানুসারে সাজানো
সংখ্যা সাজানো
ডিফল্টভাবেsort()
ফাংশন অনুযায়ীঅক্ষরক্রমানুসারে মূল্যকে সাজায়。
এই ফাংশন অক্ষরের জন্য যথেষ্ট ভালো ("Apple" "Banana"-র আগে থাকবে)。
কিন্তু, যদি সংখ্যা অক্ষরের মাধ্যমে সাজানো হয়, তবে "25" "100"-কে বড় বলে গণ্য করা হবে, কারণ "2" "1"-কে বড় বলা হয়。
এইভাবেsort()
মেথড 40-100 গণনা করে, -60 (নেতিবাচক মূল্য) ফিরিয়ে দেয়。
আমরা একটিক্রমপর্যায় ফাংশনএই সমস্যা সমাধান করুন:
ইনস্ট্যান্স
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b});
একই পদ্ধতিতে অর্থেক্ষক ক্রমানুসারে সাজানো করুন:
ইনস্ট্যান্স
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a});
ক্রমপর্যায় ফাংশন
কম্পারেটর ফাংশনের উদ্দেশ্য হল একটি অপর ক্রমানুসার নির্ধারণ করা。
কম্পারেটর ফাংশন একটি নেতিবাচক, শূন্য বা নেতিবাচক মূল্য ফিরিয়ে দিতে হবে, এটা প্রতিকূলক ভাবে নির্ধারিত হয়:
function(a, b){return a-b}
যখন sort()
ফাংশন দুটি মূল্য কম্পারেটর ফাংশনে পাঠায়, এবং ফিরিয়ে পাওয়া মূল্যের ভিত্তিতে মূল্যকে সাজায়。
উদাহরণ:
যখন 40 ও 100 কম্পারেট করা হয় তখন,sort()
এই মেথড 40, 100 কম্পারেটর ফাংশন ডাক করে。
এই ফাংশন 40-100 গণনা করে, -60 (নেতিবাচক মূল্য) ফিরিয়ে দেয়。
সাজানো ফাংশন 40-100 গণনা করে, -60 (নেতিবাচক মূল্য) ফিরিয়ে দেয়。
আপনি নিচের কোড টুকুম ব্যবহার করে সংখ্যা ও অক্ষরের ক্রমানুসারে সাজানো পরীক্ষা করতে পারেন:
<button onclick="myFunction1()">অক্ষরত্তুক ক্রমানুসারে সাজানো</button> <button onclick="myFunction2()">সংখ্যাত্তুক ক্রমানুসারে সাজানো</button> <p id="demo"></p> <script> var points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = points; function myFunction1() { points.sort(); document.getElementById("demo").innerHTML = points; } function myFunction2() { points.sort(function(a, b){return a - b}); document.getElementById("demo").innerHTML = points; } </script>
以随机顺序排序数组
ইনস্ট্যান্স
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return 0.5 - Math.random()});
查找最高(或最低)的数组值
JavaScript 不提供查找数组中最大或最小数组值的内建函数。
不过,在对数组进行排序之后,您能够使用索引来获得最高或最低值。
升序排序:
ইনস্ট্যান্স
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); // 现在 points[0] 包含最低值 // 而 points[points.length-1] 包含最高值
降序排序:
ইনস্ট্যান্স
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // 现在 points[0] 包含最高值 // 而 points[points.length-1] 包含最低值
যদি আপনি শুধুমাত্র সর্বশীর্ষ বা সর্বনিম্ন মান খুঁজুন, তবে সমগ্র আইন্দ্রনমা সারিবার করা দ্রুততর পদ্ধতি নয়。
Math.max()
আপনি এটা ব্যবহার করতে পারেন: Math.max.apply
একটি আইন্দ্রনমা খুঁজুন:
ইনস্ট্যান্স
function myArrayMax(arr) { return Math.max.apply(null, arr); }
Math.max.apply([1, 2, 3])
সমান Math.max(1, 2, 3)
。
Math.min()
আপনি এটা ব্যবহার করতে পারেন: Math.min.apply
একটি আইন্দ্রনমা খুঁজুন:
ইনস্ট্যান্স
function myArrayMin(arr) { return Math.min.apply(null, arr); }
Math.min.apply([1, 2, 3])
সমান Math.min(1, 2, 3)
。
আমার Min / Max JavaScript পদ্ধতি
সর্বশীর্ষ সমাধানকে ‘স্বনির্মিত’ পদ্ধতি ব্যবহার করা হয়。
এই ফাংশন একটি আইন্দ্রনমা চলে, যার মাধ্যমে একটি সর্বশীর্ষ মান পাওয়া যায় এবং প্রত্যেক মানকে তার সঙ্গে তুলনা করা হয়:
একটি উদাহরণ (ম্যাক্স খুঁজুন)
function myArrayMax(arr) { var len = arr.length var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; }
এই ফাংশন একটি আইন্দ্রনমা চলে, যার মাধ্যমে একটি সর্বনিম্ন মান পাওয়া যায় এবং প্রত্যেক মানকে তার সঙ্গে তুলনা করা হয়:
একটি উদাহরণ (মিন খুঁজুন)
function myArrayMin(arr) { var len = arr.length var min = Infinity; while (len--) { if (arr[len] < min) { min = arr[len]; } } return min; }
সার্চ ওয়ার্ড
JavaScript আইন্টারভেল সার্চ
ইনস্ট্যান্স
var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];
যদিও অবজেক্টটি ভিন্ন ডাটা টাইপের এট্রিবিউটস ধারণ করে:sort()
এই পদ্ধতি আইন্টারভেল সার্চ করার জন্যও ব্যবহার করা যেতে পারে。
সমাধানটি হল তুলনা ফাংশন দ্বারা এট্রিবিউট মান তুলনা করা:
ইনস্ট্যান্স
cars.sort(function(a, b){return a.year - b.year});
স্ট্রিং এট্রিবিউটস তুলনা করতে কমবেশি জটিল:
ইনস্ট্যান্স
cars.sort(function(a, b){ var x = a.type.toLowerCase(); var y = b.type.toLowerCase(); if (x < y) {return -1;} if (x > y) {return 1;} return 0; });
- পূর্ববর্তী পৃষ্ঠা JS আইন্টারভেল সার্চ
- পরবর্তী পৃষ্ঠা JS আইন্টারভেল ইটারেশন