ডিফল্ট মান সহ প্যাড
আমি লক্ষ্য করেছি যে আমার বেশিরভাগ সময় রূপান্তর / নম্বর প্যাডিংয়ের জন্য প্যাডলিফ্টের প্রয়োজন need
সুতরাং আমি এই ফাংশন লিখেছি
function padL(a,b,c){//string/number,length=2,char=0
return (new Array(b||2).join(c||0)+a).slice(-b)
}
এই সাধারণ ফাংশনটি সংখ্যা বা স্ট্রিং সমর্থন করে ইনপুট হিসাবে
ডিফল্ট প্যাড 2 অক্ষর
ডিফল্ট চর 0
সুতরাং আমি সহজভাবে লিখতে পারেন
padL(1);
// 01
যদি আমি দ্বিতীয় যুক্তি যুক্ত করি (প্যাড প্রস্থ)
padL(1,3);
// 001
তৃতীয় প্যারামিটার (প্যাড চর)
padL('zzz',10,'x');
// xxxxxxxzzz
আপনি যদি একটি অপরিবর্তিত মান বা একটি 0 দৈর্ঘ্যের স্ট্রিংটি পাস করেন তবে @ বনানাএসিড সম্পাদনা করুন0undefined
:
যেভাবে নির্দেশিত
function padL(a,b,c){//string/number,length=2,char=0
return (new Array((b||1)+1).join(c||0)+(a||'')).slice(-(b||2))
}
তবে এটি একটি সংক্ষিপ্ত উপায়েও অর্জন করা যায়।
function padL(a,b,c){//string/number,length=2,char=0
return (new Array(b||2).join(c||0)+(a||c||0)).slice(-b)
}
এর সাথেও কাজ করে:
padL(0)
padL(NaN)
padL('')
padL(undefined)
padL(false)
এবং আপনি যদি উভয় উপায়ে প্যাড করতে সক্ষম হতে চান:
function pad(a,b,c,d){//string/number,length=2,char=0,0/false=Left-1/true=Right
return a=(a||c||0),c=new Array(b||2).join(c||0),d?(a+c).slice(0,b):(c+a).slice(-b)
}
যা স্লাইস ব্যবহার না করে আরও ছোট উপায়ে লেখা যেতে পারে।
function pad(a,b,c,d){
return a=(a||c||0)+'',b=new Array((++b||3)-a.length).join(c||0),d?a+b:b+a
}
/*
Usage:
pad(
input // (int or string) or undefined,NaN,false,empty string
// default:0 or PadCharacter
// optional
,PadLength // (int) default:2
,PadCharacter // (string or int) default:'0'
,PadDirection // (bolean) default:0 (padLeft) - (true or 1) is padRight
)
*/
এখন যদি আপনি 2 দিয়ে 'অ্যাওয়ারিলংওয়ার্ড' প্যাড করার চেষ্টা করেন ... তবে এটি আমার সমস্যা নয়।
বলেছিল আমি তোমাকে একটা টিপস দিচ্ছি।
আপনি প্যাড করলে বেশিরভাগ সময় এটি একই মানের N বারের জন্য করেন।
লুপের ভিতরে যে কোনও ধরণের ফাংশন ব্যবহার করা লুপকে ধীর করে দেয় !!!
সুতরাং আপনি যদি প্যাডটি চান তবে একটি দীর্ঘ তালিকার ভিতরে কিছু নম্বর রেখেছেন তবে এই সাধারণ কাজটি করার জন্য ফাংশন ব্যবহার করবেন না।
এর মতো কিছু ব্যবহার করুন:
var arrayOfNumbers=[1,2,3,4,5,6,7],
paddedArray=[],
len=arrayOfNumbers.length;
while(len--){
paddedArray[len]=('0000'+arrayOfNumbers[len]).slice(-4);
}
যদি আপনি না জানেন যে অ্যারের অভ্যন্তরের সংখ্যার ভিত্তিতে সর্বাধিক প্যাডিং আকার size
var arrayOfNumbers=[1,2,3,4,5,6,7,49095],
paddedArray=[],
len=arrayOfNumbers.length;
// search the highest number
var arrayMax=Function.prototype.apply.bind(Math.max,null),
// get that string length
padSize=(arrayMax(arrayOfNumbers)+'').length,
// create a Padding string
padStr=new Array(padSize).join(0);
// and after you have all this static values cached start the loop.
while(len--){
paddedArray[len]=(padStr+arrayOfNumbers[len]).slice(-padSize);//substr(-padSize)
}
console.log(paddedArray);
/*
0: "00001"
1: "00002"
2: "00003"
3: "00004"
4: "00005"
5: "00006"
6: "00007"
7: "49095"
*/