কম্পিউটার

কেন Array.map(Number) খালি স্থানকে শূন্যে রূপান্তর করে? জাভাস্ক্রিপ্ট


ধরা যাক আমাদের নিম্নলিখিত কোড এবং আউটপুট দেওয়া হয়েছে এবং কেন জাভাস্ক্রিপ্ট খালি স্ট্রিংগুলিকে (“ “) 0-

-এ রূপান্তরিত করে তা খুঁজে বের করতে হবে।
const digify = (str) => {
   const parsedStr = [...str].map(Number)
   return parsedStr;
}
console.log(digify("778 858 7577"))

আউটপুট

[
7, 7, 8, 0, 8,
5, 8, 0, 7, 5,
7, 7
]

এই আচরণটি খুব বিরক্তিকর হতে পারে বিশেষ করে যখন আমাদের স্ট্রিংটিতেও কিছু 0 থাকে

এটি আসলে ঘটে কারণ ম্যাপ() ফাংশনের ভিতরে যখন আমরা সংখ্যা ব্যবহার করে প্রতিটি অক্ষরকে তার সংখ্যাসূচক সমতুল্যে রূপান্তর করি, তখন এটি যা করে তা আসলে কঠোর সমতা তুলনা (===) এর পরিবর্তে অ্যাবস্ট্রাক্ট ইকুয়ালিটি তুলনা (==) ব্যবহার করে যা অনুযায়ী' ' ==0 সত্য দেয় এবং এইভাবে প্রতিটি স্থান 0 এ রূপান্তরিত হয়।

এই অযৌক্তিক আচরণ রোধ করার জন্য আমরা আমাদের ম্যাপ() ফাংশনে এইরকম কিছু পরিবর্তন করতে পারি -

উদাহরণ

const sin = (str) => {
   const parsedStr = [...str].map(i => parseInt(i, 10))
   return parsedStr;
}
console.log(sin("778 858 7577"))

এইভাবে, যখনই একটি স্থানের সম্মুখীন হয়, তখন এটি NaN-এ রূপান্তরিত হবে এবং যা একটি আরও যৌক্তিক আচরণ৷

আউটপুট

[
7, 7, 8, NaN, 8,
5, 8, NaN, 7, 5,
7, 7
]

  1. জাভাস্ক্রিপ্ট একটি অ্যারেকে JSON এ রূপান্তর করুন

  2. জাভাস্ক্রিপ্টে অ্যারেকে সেটে কীভাবে রূপান্তর করবেন?

  3. জাভাস্ক্রিপ্টে একটি অ্যারে খালি করার উপায়গুলির সংখ্যা

  4. জাভাস্ক্রিপ্টে সংখ্যার বিপরীত অ্যারেতে সংখ্যা রূপান্তর করুন