Home Web Front-end JS Tutorial Sharing of 4 digital thousand place formatting methods implemented in JS_javascript skills

Sharing of 4 digital thousand place formatting methods implemented in JS_javascript skills

May 16, 2016 pm 04:11 PM
js number format

The so-called thousands form of numbers, that is, starting from the single digit, add a comma between every three digits. For example "10,000". In response to this requirement, I initially wrote a function like this:

Copy code The code is as follows:

//Method 1
function toThousands(num) {
var result = [ ], counter = 0;
num = (num || 0).toString().split('');
for (var i = num.length - 1; i >= 0; i--) {
counter ;
         result.unshift(num[i]);
If (!(counter % 3) && i != 0) { result.unshift(','); }
}
Return result.join('');
}

The execution process of method one is to convert the numbers into strings, break them into arrays, and then insert the elements in the array into the beginning of the new array (result) one by one starting from the end. Every time an element is inserted, counter counts once (plus 1). When counter is a multiple of 3, a comma is inserted, but note that no comma is required at the beginning (when i is 0). Finally, the result is obtained by calling the join method of the new array.

Method 1 is relatively clear and easy to understand, and has been used in the project for some time. But my intuition tells me that its performance is not good.

Method 2 - string version of method 1

Copy code The code is as follows:

//Method 2
function toThousands(num) {
var result = '', counter = 0;
num = (num || 0).toString();
for (var i = num.length - 1; i >= 0; i--) {
counter ;
result = num.charAt(i) result;
If (!(counter % 3) && i != 0) { result = ',' result; }
}
Return result;
}

Method 2 is an improved version of method 1. It does not break the string into arrays and always operates on the string.

Method 3 - Loop to match the last three numbers

Copy code The code is as follows:

//Method 3
function toThousands(num) {
var num = (num || 0).toString(), re = /d{3}$/, result = '';
While ( re.test(num) ) {
          result = RegExp.lastMatch result;
If (num !== RegExp.lastMatch) {
              result = ',' result;
               num = RegExp.leftContext;
         } else {
             num = '';
             break;
}
}
If (num) { result = num result; }
Return result;
}

Method 3 is a completely different algorithm. It loops through regular expressions to match the three numbers at the end. Each time it matches, the comma and the matched content are inserted into the beginning of the result string, and then the matching target (num) Assign the value to the content that has not yet been matched (RegExp.leftContext). Also, note:

1. If the number of digits is a multiple of 3, the last matched content must be three digits, but there is no need to add commas before the first three digits;
2. If the number of digits in the number is not a multiple of 3, then there will definitely be 1 or 2 numbers left in the num variable at the end. After the loop, the remaining numbers should be inserted into the beginning of the result string.

Although method three reduces the number of loops (processing three characters in one loop), it increases consumption to a certain extent due to the use of regular expressions.

Method 4 - String version of method 3

Copy code The code is as follows:

//Method 4
function toThousands(num) {
var num = (num || 0).toString(), result = '';
while (num.length > 3) {
          result = ',' num.slice(-3) result;
​​​​ num = num.slice(0, num.length - 3);
}
If (num) { result = num result; }
Return result;
}

In fact, the function of intercepting the last three characters can be achieved through the slice, substr or substring method of the string type. This way you avoid using regular expressions.

Method Five - Grouping and Merging Method

Copy code The code is as follows:

//Method 5
function toThousands(num) {
var num = (num || 0).toString(), temp = num.length % 3;
switch (temp) {
case 1:
              num = '00' num;
             break;
case 2:
              num = '0' num;
             break;
}
Return num.match(/d{3}/g).join(',').replace(/^0 /, '');
}

First complement the number of digits to a multiple of 3, use regular expressions to cut it into groups of three digits, then add commas through the join method, and finally remove the complemented 0s.

Method Six - The Lazy Man's Method

Copy code The code is as follows:

//Method 6
function toThousands(num) {
Return (num || 0).toString().replace(/(d)(?=(?:d{3}) $)/g, '$1,');
}

I have always felt that this formatting can be done by replacing a regular expression, but it requires the use of assertions and other writing methods. Unfortunately, I am not familiar with this part. After some searching on Google, I actually found such a regular expression. This is probably the shortest implementation of the code.

Test results

数字 执行5000次消耗的时间(ms)
方法一 方法二 方法三 方法四 方法五 方法六
1 4 1 3 1 14 2
10 14 1 3 0 7 2
100 12 1 2 4 5 3
1000 13 2 3 2 9 5
10000 21 4 3 1 6 3
100000 21 3 2 1 5 6

The strong comparison between Method 1 and Method 2 shows that the efficiency of string operations is much higher than that of array operations; the test results of Method 6 tell us that the length of the code has nothing to do with the performance. Method 4 has the best overall performance (but why the performance is reduced when num is 100, I really don’t understand). The main reason is:

1. Comparing methods one and two, each operation uses 3 characters instead of 1 character to reduce the number of loops;
2. Compared with methods three, five and six, regular expressions are not used, which reduces consumption.

Finally, I chose method four as the final optimization solution. If readers have better implementation methods or suggestions for improvement, you can leave comments.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to format c drive with dos command How to format c drive with dos command Feb 19, 2024 pm 04:23 PM

DOS command is a command line tool used in Windows operating system, which can be used to perform various system management tasks and operations. One of the common tasks is to format the hard drive, including the C drive. Formatting the C drive is a relatively dangerous operation because it will erase all data on the C drive and reinitialize the file system. Before performing this operation, make sure you have backed up important files and have a clear understanding of the impact that formatting will have on your computer. The following is formatted in the DOS command line

Recommended: Excellent JS open source face detection and recognition project Recommended: Excellent JS open source face detection and recognition project Apr 03, 2024 am 11:55 AM

Face detection and recognition technology is already a relatively mature and widely used technology. Currently, the most widely used Internet application language is JS. Implementing face detection and recognition on the Web front-end has advantages and disadvantages compared to back-end face recognition. Advantages include reducing network interaction and real-time recognition, which greatly shortens user waiting time and improves user experience; disadvantages include: being limited by model size, the accuracy is also limited. How to use js to implement face detection on the web? In order to implement face recognition on the Web, you need to be familiar with related programming languages ​​and technologies, such as JavaScript, HTML, CSS, WebRTC, etc. At the same time, you also need to master relevant computer vision and artificial intelligence technologies. It is worth noting that due to the design of the Web side

Revealed secrets of cell phone format recovery methods (mobile phone malfunction? Don't worry) Revealed secrets of cell phone format recovery methods (mobile phone malfunction? Don't worry) May 04, 2024 pm 06:01 PM

Nowadays, we will inevitably encounter some problems such as being unable to turn on the phone or lagging, such as system crash, but during use, mobile phones have become an indispensable part of our lives. We are often at a loss, and sometimes, there are no solutions to these problems. To help you solve cell phone problems, this article will introduce you to some methods of cell phone format recovery and restore your phone to normal operation. Back up data - protect important information, such as photos and contacts, from being lost during the formatting process. Before formatting your phone, the first thing to consider is to back up important data and files on your phone. To ensure data security, or choose to transfer files to a cloud storage service, you can back it up by connecting to a computer. Use the system's built-in recovery function - simple

Will formatting a laptop make it faster? Will formatting a laptop make it faster? Feb 12, 2024 pm 11:54 PM

Will formatting a laptop make it faster? If you want to format your Windows laptop but want to know if it will make it faster, this article will help you know the right answer to this question. Will formatting a laptop make it faster? There are many reasons why users format their Windows laptops. But the most common reason is slow performance or speed of your laptop. Formatting a laptop will completely delete all data stored on the C drive or the hard drive partition where Windows operating system is installed. Therefore, every user will think twice before taking this step, especially when it comes to the performance of the laptop. This article will help you understand whether formatting your laptop will speed it up. Formatting your laptop helps

What are the methods of html formatting? What are the methods of html formatting? Mar 08, 2024 am 09:53 AM

HTML formatting method: 1. Use online HTML formatting tools; 2. Use the HTML formatting shortcut keys that come with the code editor, such as Shift + Alt + F in Visual Studio Code; 3. Use plug-ins, such as Sublime Text HTML/CSS/JS Prettify plug-in; 4. Use command line tools, such as HTML Tidy; 5. Manual formatting according to coding standards and habits.

The relationship between js and vue The relationship between js and vue Mar 11, 2024 pm 05:21 PM

The relationship between js and vue: 1. JS as the cornerstone of Web development; 2. The rise of Vue.js as a front-end framework; 3. The complementary relationship between JS and Vue; 4. The practical application of JS and Vue.

Method: Format the Json file content Method: Format the Json file content Feb 18, 2024 am 11:41 AM

Json file formatting method Json (JavaScriptObjectNotation) is a lightweight data exchange format that is widely used for data transmission and storage in web applications and mobile applications. Json files store data in a structured manner, making it very convenient to parse and use data. However, sometimes we may encounter situations where the Json file format is disordered or difficult to read. In this case, we can use Json file formatting method to optimize Jso

How to format and reinstall the win10 system_Format and reinstall the win10 system tutorial How to format and reinstall the win10 system_Format and reinstall the win10 system tutorial Mar 21, 2024 pm 04:56 PM

Nowadays, the security of Windows 10 system computers is threatened by many viruses and programs. Let’s take a typical example. When he is surfing the Internet, he will unintentionally open a link or website, and then some very annoying advertisements will pop up on our computer inexplicably. Or if the computer is stuck in the interface and cannot move, it is likely that some software has been maliciously bundled and installed. Another situation is that there is a virus in the computer. If this kind of problem occurs, we can reinstall the system on the win10 computer, which can effectively remove the virus programs in the system disk. Now the editor will show you how to format and reinstall the win10 system. Let's read on. . 1. How to format and reinstall the win10 system? First, we click "Start" -

See all articles