length
একটি সম্পত্তি, একটি পদ্ধতি নয়। আপনি এটি কল করতে পারবেন না, সুতরাং আপনার প্রথম বন্ধনী প্রয়োজন নেই ()
:
function getlength(number) {
return number.toString().length;
}
আপডেট: মন্তব্যগুলিতে আলোচিত হিসাবে, উপরের উদাহরণটি ভাসমান সংখ্যার জন্য কাজ করবে না। এটা কাজ আমরা হয় সঙ্গে একটি নির্দিষ্ট সময়ের পরিত্রাণ পেতে পারেন তা নিশ্চিত করার String(number).replace('.', '').length
, বা রেগুলার এক্সপ্রেশনের সাথে ডিজিটের গণনা: String(number).match(/\d/g).length
।
গতির দিক দিয়ে প্রদত্ত সংখ্যায় সংখ্যা অর্জনের দ্রুততম উপায়টি হচ্ছে এটি গাণিতিকভাবে করা। জন্য ধনাত্মক পূর্ণসংখ্যা সেখানে সঙ্গে একটি বিস্ময়কর অ্যালগরিদম হয় log10
:
var length = Math.log(number) * Math.LOG10E + 1 | 0; // for positive integers
সমস্ত ধরণের পূর্ণসংখ্যার জন্য (নেতিবাচকগুলি সহ) @ এমড্রাব্লু 247 থেকে একটি উজ্জ্বল অপ্টিমাইজড সমাধান রয়েছে তবে ব্যবহারের ক্ষেত্রে সতর্ক থাকুন Math.log10
, কারণ এটি বহু লিগ্যাসি ব্রাউজারগুলি সমর্থন করে না by তাই প্রতিস্থাপন Math.log10(x)
সঙ্গে Math.log(x) * Math.LOG10E
সামঞ্জস্য সমস্যার সমাধান হবে।
ভাসমান পয়েন্ট গণিতের সুপরিচিত আচরণের কারণে দশমিক সংখ্যার জন্য দ্রুত গাণিতিক সমাধানগুলি তৈরি করা সহজ হবে না , তাই কাস্ট-টু-স্ট্রিং পদ্ধতির পক্ষে আরও সহজ এবং বোকা প্রমাণ হবে। @ স্ট্রিটলোগিকস দ্বারা উল্লিখিত হিসাবে দ্রুত কাস্টিং সরল সংখ্যার সাথে স্ট্রিং কনটেনটেশনে করা যেতে পারে, যার ফলে প্রতিস্থাপনের সমাধানটি রূপান্তরিত হতে পারে:
var length = (number + '').replace('.', '').length; // for floats