কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে অ্যারেতে NaN কীওয়ার্ডের অস্তিত্ব চেক করা


আমাদের কাছে এলিমেন্টের একটি অ্যারে আছে যেটিতে ট্রুথি এবং ফালসি দুই ধরণের ভ্যালু রয়েছে। আমাদের কাজ হলো একটি ফাংশন লিখা যা মূল অ্যারেতে যেসব এলিমেন্ট NaN তাদের ইনডেক্স ধরে একটি অ্যারে রিটার্ন করবে।

NaN !== NaN

NaN এর ডেটা টাইপ আসলে number। যদিও 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() ফাংশন true বা false রিটার্ন করে এই ভিত্তিতে যে প্রদত্ত ভ্যালু NaN কিনা বা NaN-এ কোয়ার্স করা যায় কিনা। আর Number.isNaN() ফাংশন শুধু তখনই true রিটার্ন করে যখন প্রদত্ত ভ্যালু আসলে 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() বেশি নির্ভরযোগ্য।


  1. জাভাস্ক্রিপ্টে অ্যারে সত্যি অ্যারে কিনা যাচাই করার পদ্ধতি

  2. জাভাস্ক্রিপ্টে NaN কি NaN কিনা তা কীভাবে চেক করবেন

  3. জাভাস্ক্রিপ্টে অবজেক্ট অ্যারে কিনা চেক করার উপায়

  4. জাভাস্ক্রিপ্টে অ্যারেতে ইন্টিজার ভ্যালু আছে কিনা চেক করা