2013-01-10 1 views
1

에 가능한 복제를 StringBuilder 내를 구현하는 방법이 있나요 : 그것은 우리가 새로운 캐릭터가 생성 str = str + "123"을 수행 할 때 알려진
JavaScript string concatenation
does javascript have a built in stringbuilder class?자바 스크립트

으로. 연결 수가 많으면 값 비싼 편입니다. JavaScript로 StringBuilder를 구현하는 간단한 방법이 있습니까?

+0

문자열 JS, 당신은 스트링 빌더에 의해 무엇을 의미합니까있다 불변 조금 더 나은 것 같습니다? C처럼 #? – mpm

+0

문자열 연결 기술에 관한 게시물 http://stackoverflow.com/questions/112158/javascript-string-containation이 있습니다. –

+0

@camus, 네, C에서와 같이'StringBuilder'를 생각하고 있어요 – Eugeny89

답변

3

당신은 배열에 부품을 밀어 후 가입하실 수 있습니다 :

var builder = [] 
builder.push("some", "123"); 
builder.push("content"); 
var str = builder.join(""); 

This SO question이 상세하게 설명, 문자열이 정적 경우 자바 스크립트에서 this class

+0

더 간결한 표기법을 선호합니다 :'var str = [ 'some', '123', 'content']. join ('');'(일반적으로 항목 간 줄 바꿈 포함) – keithjgrant

1

저는 정상적인 문자열 연결보다 빠른 StringBuilder를 구현하는 것이 결코 간단하지 않다고 생각합니다. 그리고 그것은 분명히 빌더의 이유입니다.

전체를 문자열로 변환하려면 an 배열을 채 웁니다.

1

기존의 연결이 최적도 참조하십시오.

var foo = 'a' + 'b' + 'c' + 'd'; 

대부분의 브라우저에서 마찬가지입니다. string-concatenation

문자열이 프로그램에 따라 가변적 일 수있는 경우 두 가지 방법 모두 똑같이 효율적입니다.

var foo = ""+Math.random() + Math.random() + Math.random() + Math.random(); 
var foo = [Math.random(), Math.random(), Math.random(), Math.random()].join(''); 

차이는 브라우저 사이에 너무 큰 것은 아니지만 전통적인 방법은 string-random-concatenation

관련 문제