.indexOf()এবং .includes()পদ্ধতিগুলি অ্যারের উপাদানগুলির সন্ধান করতে বা প্রদত্ত স্ট্রিংয়ে একটি অক্ষর / সাবস্ট্রিং অনুসন্ধান করতে ব্যবহার করা যেতে পারে।
অ্যারে ব্যবহার
( ECMAScript নির্দিষ্টকরণের লিঙ্ক )
indexOfব্যবহার যথাযথ সমতা তুলনা যেহেতু includesব্যবহারসমূহ SameValueZero অ্যালগরিদম। এই কারণে, নিম্নলিখিত দুটি পয়েন্টের মধ্যে পার্থক্য দেখা দেয়।
ফেলিক্স ক্লিং দ্বারা চিহ্নিত হিসাবে , আচরণ ক্ষেত্রে ক্ষেত্রে ভিন্ন NaN।
let arr = [NaN];
arr.indexOf(NaN); // returns -1; meaning NaN is not present
arr.includes(NaN); // returns true
- ক্ষেত্রে আচরণও আলাদা
undefined।
let arr = [ , , ];
arr.indexOf(undefined); // returns -1; meaning undefined is not present
arr.includes(undefined); // returns true
স্ট্রিং ব্যবহার
( ECMAScript নির্দিষ্টকরণের লিঙ্ক )
- আপনি যদি কোনও রেজিপেক্স পাস করেন তবে
indexOfএটি RegExp কে একটি স্ট্রিং হিসাবে বিবেচনা করবে এবং যদি পাওয়া যায় তবে স্ট্রিংয়ের সূচি ফিরিয়ে দেয়। তবে, আপনি যদি একটি রেজিপ্স পাস করেন তবে includesএটি একটি ব্যতিক্রম ছুঁড়ে দেবে।
let str = "javascript";
str.indexOf(/\w/); // returns -1 even though the elements match the regex because /\w/ is treated as string
str.includes(/\w/); // throws TypeError: First argument to String.prototype.includes must not be a regular expression
কর্মক্ষমতা
যেমন 538 আরএমইও উল্লেখ করেছে, includesএটি সামান্য (খুব ক্ষুদ্র) কিছুটা ধীর হতে পারে (কারণ এটি প্রথম যুক্তি হিসাবে একটি রেজেক্সের জন্য পরীক্ষা করা প্রয়োজন) indexOfতবে বাস্তবে, এটি খুব বেশি পার্থক্য রাখে না এবং উপেক্ষিতও হয়।
ইতিহাস
String.prototype.includes()ECMAScript 2015 Array.prototype.includes()সালে চালু হয়েছিল যেখানে ECMAScript 2016 সালে চালু হয়েছিল browser ব্রাউজার সমর্থনের ক্ষেত্রে, তাদের বুদ্ধিমানের সাথে ব্যবহার করুন।
String.prototype.indexOf()এবং Array.prototype.indexOf()ECMAScript এর ES5 সংস্করণে উপস্থিত রয়েছে এবং তাই সমস্ত ব্রাউজার দ্বারা সমর্থিত।
includesঅনেক খারাপ ব্রাউজার সমর্থন আছে।