আমরা সত্য এবং মিথ্যা মান উভয় ধারণ করে উপাদানের একটি অ্যারে আছে. আমাদের কাজ হল একটি ফাংশন লেখা যা মূল অ্যারেতে NaN-এর উপাদানগুলির সূচক সহ একটি অ্যারে প্রদান করে৷
NaN !==NaN
NaN এর ডেটাটাইপ আসলে সংখ্যা। যদিও NaN একটি মিথ্যা মান, এটির একটি অদ্ভুত বৈশিষ্ট্য রয়েছে যা অন্য কোনো ডেটাটাইপ বা ভেরিয়েবলের নেই। এটি হল NaN অভিব্যক্তি ===NaN ফলন মিথ্যা। এবং এটি শুধুমাত্র NaN এর ক্ষেত্রে এটি মিথ্যা।
সুতরাং, আমরা এই আচরণটি আমাদের ভালোর জন্য ব্যবহার করতে পারি এবং NaN মান সূচক বেছে নিতে পারি। এর জন্য কোড হবে −
const arr = [7, 1, "123abc", undefined, NaN, 78, NaN, null, "aes", NaN, '', null, NaN]; const pickNaN = (arr) => { return arr.reduce((acc, val, ind) => { if(val !== val){ acc.push(ind); }; return acc; }, []); }; console.log(pickNaN(arr));
isNaN() / Number.isNaN()
ব্যবহার করাisNaN() ফাংশন সত্য বা মিথ্যা ফেরত দেয় এই সত্যের উপর ভিত্তি করে যে প্রদত্ত মানটি isa NaN বা একটি NaN এর সাথে জোর করা যেতে পারে কিনা। যেখানে Number.isNaN() ফাংশন শুধুমাত্র সত্য প্রদান করে যদি প্রদত্ত মানটি আসলে NaN হয়।
সুতরাং, Number.isNaN() isNaN() এর উপর NaN চেক করার একটি নির্ভরযোগ্য উপায়। কোড আউটপুটগুলির মধ্যে পার্থক্য নীচে চিত্রিত করা হয়েছে৷
৷উদাহরণ
const arr = [7, 1, "abc", undefined, NaN, 78, NaN, null, "aes", NaN, '', null, NaN]; const pickNaN = (arr) => { return arr.reduce((acc, val, ind) => { if(Number.isNaN(val)){ acc.reliableWay.push(ind); }; if(isNaN(val)){ acc.unreliableWay.push(ind); } return acc; }, { reliableWay: [], unreliableWay: [] }); }; console.log(pickNaN(arr));
এই কোড দুটি অ্যারে প্রস্তুত করে, একটি Number.isNaN() ব্যবহার করে এবং একটি isNaN() ব্যবহার করে।
আউটপুট
আউটপুট হবে −
{ reliableWay: [ 4, 6, 9, 12 ], unreliableWay: [ 2, 3, 4, 6, 8, 9, 12] }
আমরা স্পষ্টভাবে দেখতে পাচ্ছি কিভাবে isNaN() NaN হিসাবে অনেকগুলি অ-NaN মান গণনা করেছে। সেজন্য Number.isNaN() হল আরও নির্ভরযোগ্য উপায়।