नए अंतरराष्ट्रीय मानकों का सम्मान करते हुए एक संख्या को एक पठनीय स्ट्रिंग में बदलने का एक प्रोटोटाइप है।
बड़ी संख्याओं का प्रतिनिधित्व करने के दो तरीके हैं: आप या तो उन्हें 1000 = 10 3 (बेस 10) या 1024 = 2 10 (बेस 2) के गुणकों में प्रदर्शित कर सकते हैं। यदि आप 1000 से विभाजित करते हैं, तो आप शायद SI उपसर्ग नामों का उपयोग करते हैं, यदि आप 1024 से विभाजित करते हैं, तो आप शायद IEC उपसर्ग नामों का उपयोग करते हैं। समस्या 1024 से विभाजित होने के साथ शुरू होती है। कई अनुप्रयोग इसके लिए SI उपसर्ग नामों का उपयोग करते हैं और कुछ IEC उपसर्ग नामों का उपयोग करते हैं। मौजूदा स्थिति गड़बड़ है। यदि आप SI उपसर्ग नाम देखते हैं, तो आप नहीं जानते कि संख्या 1000 या 1024 से विभाजित है या नहीं
https://wiki.ubuntu.com/UnitsPolicy
http://en.wikipedia.org/wiki/Template:Quantities_of_bytes
Object.defineProperty(Number.prototype,'fileSize',{value:function(a,b,c,d){
return (a=a?[1e3,'k','B']:[1024,'K','iB'],b=Math,c=b.log,
d=c(this)/c(a[0])|0,this/b.pow(a[0],d)).toFixed(2)
+' '+(d?(a[1]+'MGTPEZY')[--d]+a[2]:'Bytes');
},writable:false,enumerable:false});
इस फ़ंक्शन में कोई भी नहीं है loop
, और इसलिए यह संभवतः कुछ अन्य कार्यों की तुलना में तेज़ है।
उपयोग:
आईईसी उपसर्ग
console.log((186457865).fileSize()); // default IEC (power 1024)
//177.82 MiB
//KiB,MiB,GiB,TiB,PiB,EiB,ZiB,YiB
एसआई उपसर्ग
console.log((186457865).fileSize(1)); //1,true for SI (power 1000)
//186.46 MB
//kB,MB,GB,TB,PB,EB,ZB,YB
मैंने IEC को डिफ़ॉल्ट के रूप में सेट किया क्योंकि मैंने हमेशा बाइनरी मोड का उपयोग किया था ... 1024 की शक्ति का उपयोग करके किसी फ़ाइल के आकार की गणना करने के लिए
यदि आप बस एक छोटे oneliner समारोह में उनमें से एक चाहते हैं:
एसआई
function fileSizeSI(a,b,c,d,e){
return (b=Math,c=b.log,d=1e3,e=c(a)/c(d)|0,a/b.pow(d,e)).toFixed(2)
+' '+(e?'kMGTPEZY'[--e]+'B':'Bytes')
}
//kB,MB,GB,TB,PB,EB,ZB,YB
आईईसी
function fileSizeIEC(a,b,c,d,e){
return (b=Math,c=b.log,d=1024,e=c(a)/c(d)|0,a/b.pow(d,e)).toFixed(2)
+' '+(e?'KMGTPEZY'[--e]+'iB':'Bytes')
}
//KiB,MiB,GiB,TiB,PiB,EiB,ZiB,YiB
उपयोग:
console.log(fileSizeIEC(7412834521));
यदि आपके पास केवल पूछे जाने वाले कार्यों के बारे में कुछ प्रश्न हैं