JS_javascript 기술로 구현된 4개의 디지털 천 자리 서식 지정 방법 공유
소위 천 단위 숫자, 즉 한 자리부터 시작하여 세 자리마다 쉼표를 추가하는 방식입니다. 예를 들어 "10,000"입니다. 이 요구 사항에 대응하여 처음에는 다음과 같은 함수를 작성했습니다.
//방법 1
함수 toThousands(num) {
var 결과 = [ ], 카운터 = 0;
num = (num || 0).toString().split('');
for (var i = num.length - 1; i >= 0; i--) {
카운터 ;
result.unshift(num[i]);
If (!(카운터 % 3) && i != 0) { result.unshift(',') }
}
결과 반환.join('');
}
방법 1의 실행 과정은 숫자를 문자열로 변환하고 배열로 나눈 다음 배열의 요소를 끝부터 하나씩 새 배열(결과)의 시작 부분에 삽입하는 것입니다. 요소가 삽입될 때마다 counter는 한 번씩 계산됩니다(더하기 1). counter가 3의 배수이면 쉼표가 삽입되지만 처음에는 쉼표가 필요하지 않습니다(i가 0인 경우). 마지막으로 새 배열의 Join 메소드를 호출하여 결과를 얻습니다.
방법 1은 비교적 명확하고 이해하기 쉬우며 한동안 프로젝트에서 사용되었습니다. 하지만 내 직감으로는 성능이 좋지 않다는 것을 알 수 있습니다.
방법 2 - 방법 1의 문자열 버전
//방법 2
함수 toThousands(num) {
var 결과 = '', 카운터 = 0;
num = (num || 0).toString();
for (var i = num.length - 1; i >= 0; i--) {
카운터 ;
결과 = num.charAt(i) 결과;
If (!(카운터 % 3) && i != 0) { 결과 = ',' 결과 }
}
결과 반환;
}
방법 2는 방법 1의 향상된 버전입니다. 문자열을 배열로 나누지 않고 항상 문자열에 대해 작동합니다.
방법 3 - 마지막 세 숫자를 일치시키는 루프
//방법 3
함수 toThousands(num) {
var num = (num || 0).toString(), re = /d{3}$/, result = '';
동안 ( re.test(num) ) {
결과 = RegExp.lastMatch 결과;
If (num !== RegExp.lastMatch) {
결과 = ',' 결과;
num = RegExp.leftContext;
} else {
숫자 = '';
휴식;
}
}
If (num) { 결과 = num 결과 }
결과 반환;
}
방법 3은 정규식을 반복하여 마지막 숫자 3개를 일치시킬 때마다 쉼표와 일치하는 내용을 결과 문자열의 시작 부분에 삽입한 다음 일치하는 항목을 찾습니다. target (num) 아직 일치하지 않은 콘텐츠(RegExp.leftContext)에 값을 할당합니다. 또한 참고하세요:
1. 자릿수가 3의 배수인 경우 마지막으로 일치하는 내용은 3자리여야 하지만, 처음 3자리 앞에 쉼표를 추가할 필요는 없습니다.
2. 숫자의 자릿수가 3의 배수가 아닌 경우 끝의 num 변수에 확실히 1 또는 2개의 숫자가 남게 됩니다. 나머지 숫자는 루프의 시작 부분에 삽입되어야 합니다. 결과 문자열.
방법 4 - 방법 3의 문자열 버전
//방법 4
함수 toThousands(num) {
var num = (num || 0).toString(), result = '';
while (숫자.길이 > 3) {
결과 = ',' num.slice(-3) 결과;
num = num.slice(0, num.length - 3);
}
If (num) { 결과 = num 결과 }
결과 반환;
}
실제로 마지막 세 문자를 가로채는 기능은 string형의 Slice, substr, substring 방식을 통해 구현할 수 있습니다. 이렇게 하면 정규식 사용을 피할 수 있습니다.
방법 5 - 그룹화 및 병합 방법
//방법 5
함수 toThousands(num) {
var num = (num || 0).toString(), temp = num.length % 3;
스위치(임시) {
사례 1:
숫자 = '00' 숫자;
휴식;
사례 2:
숫자 = '0' 숫자;
휴식;
}
num.match(/d{3}/g).join(',').replace(/^0 /, '');
를 반환합니다. }
먼저 자릿수를 3의 배수로 보완하고 정규식을 사용하여 세 자리 그룹으로 나눈 다음 조인 방법을 통해 쉼표를 추가하고 마지막으로 보완된 0을 제거합니다.
방법 6 - 게으른 남자의 방법
//방법 6
함수 toThousands(num) {
Return (num || 0).toString().replace(/(d)(?=(?:d{3}) $)/g, '$1,');
}
이 형식화는 정규 표현식을 대체하면 가능하다고 항상 느꼈지만, 이를 위해서는 단언문 및 기타 작성 방법을 사용해야 합니다. 안타깝게도 이 부분은 익숙하지 않습니다. Google에서 검색한 결과 실제로 이러한 정규식을 찾았습니다. 이는 아마도 코드의 가장 짧은 구현일 것입니다.
테스트 결과
数字 | 执行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 |
방법 1과 방법 2를 강력하게 비교하면 문자열 작업의 효율성이 배열 작업의 효율성보다 훨씬 높다는 것을 알 수 있습니다. 방법 6의 테스트 결과는 코드 길이가 성능과 관련이 없음을 보여줍니다. 방법 4가 전체적으로 성능이 가장 좋습니다(그런데 num이 100일 때 성능이 저하되는 이유는 정말 이해가 되지 않습니다).
1. 방법 1과 2를 비교하면 각 작업은 루프 수를 줄이기 위해 1자가 아닌 3자를 사용합니다.
2. 방법 3, 5, 6에 비해 정규식을 사용하지 않아 소모량이 줄어든다.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











DOS 명령은 Windows 운영 체제에서 사용되는 명령줄 도구로, 다양한 시스템 관리 작업 및 작업을 수행하는 데 사용할 수 있습니다. 일반적인 작업 중 하나는 C 드라이브를 포함한 하드 드라이브를 포맷하는 것입니다. C 드라이브를 포맷하면 C 드라이브의 모든 데이터가 지워지고 파일 시스템이 다시 초기화되므로 비교적 위험한 작업입니다. 이 작업을 수행하기 전에 중요한 파일을 백업했는지 확인하고 포맷이 컴퓨터에 미치는 영향을 명확하게 이해하십시오. 다음은 DOS 명령줄에서 형식화됩니다.

얼굴 검출 및 인식 기술은 이미 상대적으로 성숙하고 널리 사용되는 기술입니다. 현재 가장 널리 사용되는 인터넷 응용 언어는 JS입니다. 웹 프런트엔드에서 얼굴 감지 및 인식을 구현하는 것은 백엔드 얼굴 인식에 비해 장점과 단점이 있습니다. 장점에는 네트워크 상호 작용 및 실시간 인식이 줄어 사용자 대기 시간이 크게 단축되고 사용자 경험이 향상된다는 단점이 있습니다. 모델 크기에 따라 제한되고 정확도도 제한됩니다. js를 사용하여 웹에서 얼굴 인식을 구현하는 방법은 무엇입니까? 웹에서 얼굴 인식을 구현하려면 JavaScript, HTML, CSS, WebRTC 등 관련 프로그래밍 언어 및 기술에 익숙해야 합니다. 동시에 관련 컴퓨터 비전 및 인공지능 기술도 마스터해야 합니다. 웹 측면의 디자인으로 인해 주목할 가치가 있습니다.

요즘 우리는 전화를 켤 수 없거나 시스템 충돌과 같은 지연과 같은 몇 가지 문제에 필연적으로 직면하게 될 것입니다. 그러나 사용하는 동안 휴대폰은 우리 삶에서 없어서는 안될 부분이되었습니다. 우리는 종종 당황하며 때로는 이러한 문제에 대한 해결책이 없습니다. 휴대폰 문제를 해결하는 데 도움이 되도록 이 기사에서는 휴대폰 포맷 복구 및 휴대폰을 정상 작동으로 복원하는 몇 가지 방법을 소개합니다. 데이터 백업 - 포맷 과정에서 사진, 연락처 등 중요한 정보가 손실되지 않도록 보호하세요. 휴대폰을 포맷하기 전에 가장 먼저 고려해야 할 사항은 휴대폰에 있는 중요한 데이터와 파일을 백업하는 것입니다. 데이터 보안을 보장하거나 파일을 클라우드 스토리지 서비스로 전송하도록 선택하려면 컴퓨터에 연결하여 백업할 수 있습니다. 시스템에 내장된 복구 기능 사용 - 간단

노트북을 포맷하면 속도가 빨라지나요? Windows 노트북을 포맷하고 싶지만 포맷하면 속도가 더 빨라지는지 알고 싶다면 이 문서가 이 질문에 대한 정답을 찾는 데 도움이 될 것입니다. 노트북을 포맷하면 속도가 빨라지나요? 사용자가 Windows 노트북을 포맷하는 데에는 여러 가지 이유가 있습니다. 그러나 가장 일반적인 이유는 노트북의 성능이나 속도가 느리기 때문입니다. 노트북을 포맷하면 C 드라이브나 Windows 운영 체제가 설치된 하드 드라이브 파티션에 저장된 모든 데이터가 완전히 삭제됩니다. 따라서 모든 사용자는 이 단계를 수행하기 전에 특히 노트북 성능과 관련하여 두 번 생각할 것입니다. 이 문서는 노트북을 포맷하면 속도가 빨라지는지 이해하는 데 도움이 됩니다. 노트북을 포맷하면 도움이 됩니다.

HTML 형식화 방법: 1. 온라인 HTML 형식화 도구를 사용합니다. 2. Visual Studio Code의 Shift + Alt + F와 같은 코드 편집기와 함께 제공되는 HTML 형식화 바로 가기 키를 사용합니다. 3. Sublime과 같은 플러그인을 사용합니다. 텍스트 HTML/CSS/JS Prettify 플러그인 4. HTML Tidy와 같은 명령줄 도구를 사용합니다. 5. 코딩 표준 및 습관에 따른 수동 형식 지정.

js와 vue의 관계: 1. 웹 개발의 초석인 JS 2. 프론트엔드 프레임워크로서의 Vue.js의 등장 3. JS와 Vue의 상호 보완적인 관계 4. JS와 Vue의 실제 적용 Vue.

요즘 Windows 10 시스템 컴퓨터의 보안은 많은 바이러스와 프로그램에 의해 위협을 받고 있습니다. 전형적인 예를 들어 보겠습니다. 그가 인터넷을 서핑할 때 실수로 링크나 웹 사이트를 열면 매우 짜증나는 광고가 나타납니다. 또는 컴퓨터가 인터페이스에 갇혀 움직일 수 없다면 일부 소프트웨어가 악의적으로 번들되어 설치되었을 가능성이 높습니다. 이런 종류의 문제가 발생하면 win10 컴퓨터에 시스템을 다시 설치하여 시스템 디스크에 있는 바이러스 프로그램을 효과적으로 제거할 수 있습니다. 이제 편집기에서 win10 시스템을 포맷하고 다시 설치하는 방법을 살펴보겠습니다. 1. win10 시스템을 포맷하고 다시 설치하는 방법 먼저 "시작"을 클릭합니다.

5월 7일, 당사 휴대폰 제조사는 당사의 GTNeo6 출시 컨퍼런스가 5월 9일로 예정되어 있다고 공식 발표했습니다. GTNoe6는 중급 머신 상황을 뒤흔드는 것을 목표로 하는 '성능 폭풍'으로 자리매김했습니다. 아울러 이번 컨퍼런스는 휴대폰 업계 최초의 AI 디지털 휴먼 컨퍼런스이기도 하다. 이때 Realme 부사장 겸 글로벌 마케팅 사장, Xu Qi 중국 사장이 디지털 휴먼의 모습으로 기자회견장에 등장할 예정입니다. Digital man Xu Qi 공식 소개에 따르면 코드명 "Hurricane"인 Realme GTNoe6는 더 빠르고 강력하며 가장 강력한 3세대 Snapdragon 8s 플래그십이자 동급 최강 제품에 도전할 것입니다. 최근 Realme GTNeo6가 전자상거래 플랫폼에 직접 있는 것으로 밝혀져 일부 핵심 구성이 노출되어 이 기기에 Snapdragon 8s 프로세서가 탑재되었을 뿐만 아니라 120W 플래시 충전도 지원하는 것으로 나타났습니다.
