কেবল পারফর্মেন্স! এই কোডটি সম্ভবত এখানে থাকা সমস্ত কোডের চেয়ে 10X দ্রুত * সমস্ত ব্রাউজারে কাজ করে এবং এর সর্বনিম্ন মেমরির প্রভাবও রয়েছে .... এবং আরও
আপনার যদি পুরানো অ্যারেটি পুনরায় ব্যবহার করার প্রয়োজন না হয়; আপনি এটি অনন্য রূপান্তরিত করার আগে বিটিডব্লিউ প্রয়োজনীয় অন্যান্য ক্রিয়াকলাপগুলি সম্পাদন করুন সম্ভবত এটি করার খুব দ্রুততম উপায়টিও খুব ছোট।
var array=[1,2,3,4,5,6,7,8,9,0,1,2,1];
তাহলে আপনি এটি চেষ্টা করতে পারেন
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 1];
function toUnique(a, b, c) { //array,placeholder,placeholder
b = a.length;
while (c = --b)
while (c--) a[b] !== a[c] || a.splice(c, 1);
return a // not needed ;)
}
console.log(toUnique(array));
//[3, 4, 5, 6, 7, 8, 9, 0, 2, 1]
এই নিবন্ধটি পড়ে আমি এই ফাংশনটি নিয়ে এসেছি ...
http://www.shamasis.net/2009/09/fast-algorithm-to-find-unique-items-in-javascript-array/
আমি লুপ পছন্দ করি না এর অনেকগুলি পরামিতি রয়েছে। যেমন - লুপের মতো। সমস্ত ব্রাউজারের দ্রুততম লুপটি এমনটি ব্যতীত যা আমরা সবাইকে অনেক বেশি পছন্দ ... ক্রোম।
যাইহোক আমি প্রথম ফাংশনটি লিখেছিলাম যা যখন ব্যবহার করে। আর হ্যাঁ এটি নিবন্ধে পাওয়া ফাংশনটির থেকে কিছুটা দ্রুত। তবে যথেষ্ট নয়।unique2()
পরবর্তী পদক্ষেপে আধুনিক জেএস ব্যবহার করুন। Object.keys
আমি অন্যটিকে js1.7 এর অবজেক্ট.কিসের সাথে লুপের জন্য প্রতিস্থাপন করেছি ... কিছুটা দ্রুত এবং খাটো (ক্রোম 2 এক্স দ্রুত);) দিয়ে আছি। যথেষ্ট না!.unique3()
।
এই মুহুর্তে আমি আমার অনন্য ক্রিয়ায় আমার কী প্রয়োজন তা নিয়ে ভাবছিলাম। আমার পুরানো অ্যারের দরকার নেই, আমি একটি দ্রুত ফাংশন চাই। সুতরাং লুপ + স্প্লাইস করার সময় আমি 2 ব্যবহার করেছি।unique4()
আমি মুগ্ধ হয়েছি তা বলা বাহুল্য।
ক্রোম: প্রতি সেকেন্ডে স্বাভাবিকভাবে 150,000 অপারেশনগুলি প্রতি সেকেন্ডে 1,800,000 অপারেশনে চলে যায়।
অর্থাত্: 80,000 অপস / এস বনাম 3,500,000 অপস / এস
ios: 18,000 op / s বনাম 170,000 অপস / এস
সাফারি: 80,000 অপস / এস বনাম 6,000,000 অপস / এস
প্রুফ
http://jsperf.com/wgu বা আরও ভাল কনসোল.টাইম ব্যবহার করুন ... মাইক্রোটাইম ... যাই হোক না কেন
unique5()
আপনি যদি পুরানো অ্যারে রাখতে চান তবে কী হয় তা আপনাকে দেখানোর জন্য।
আপনি Array.prototype
কী করছেন তা যদি আপনি না জানেন তবে ব্যবহার করবেন না । আমি ঠিক অনেক কপি এবং অতীত করেছি। Object.defineProperty(Array.prototype,...,writable:false,enumerable:false})
আপনি যদি কোনও নেটিভ প্রোটোটাইপ. উদাহরণ তৈরি করতে চান তবে ব্যবহার করুন : https://stackoverflow.com/a/20463021/2450730
ডেমো
http://jsfiddle.net/46S7g/
দ্রষ্টব্য: এই অপারেশনের পরে আপনার পুরানো অ্যারেটি নষ্ট হয়ে গেছে / হয়ে গেছে st
যদি আপনি উপরের কোডটি জিজ্ঞাসা করতে না পারেন, একটি জাভাস্ক্রিপ্ট বই পড়তে পারেন বা এখানে সংক্ষিপ্ত কোড সম্পর্কে কিছু ব্যাখ্যা রয়েছে। https://stackoverflow.com/a/21353032/2450730
কেউ কেউ ব্যবহার করছেন indexOf
... করবেন না ... http://jsperf.com/dgfgghfghfghghgfhgfhfghfhgfh
খালি অ্যারে জন্য
!array.length||toUnique(array);