2011-08-30 6 views
0

JScript에서 구분 기호를 사용하여 여러 문자열을 결합하는 방법은 무엇입니까? JScript에서 문자열 결합?

는 (I 선형 실행 시간과 해결책을 찾고 있어요.)

+0

어레이에 넣었습니까? 'array.join ('separater')'을 사용하지 않는 이유는 무엇입니까? –

+0

+ =를 사용하여 문자열을 연결하지 마십시오. 아래의 배열/조인 방법보다 느립니다. – scrappedcola

+0

... JScript의 문자열을 실제로 연결할 수없는 이유. JScript 엔진은 연결할 때마다 새로운 문자열을 만들어야합니다. –

답변

6

join() 방법처럼? D = 이런

var elements = ["1", "2", "3"]; 
var joinedString = elements.join(','); 
+0

당신은 그것을 할 수 있습니까 ?? 왜 도대체 배열 방법입니까 ?? 와우, 좋은, 고마워! – Mehrdad

+0

배열의 요소를 결합하기 때문에. – Rick

3

뭔가를해야만 :

['a', 'b', 'c'].join(','); 

하지만, 현 소수 들면 + 조작자가 미세하게 할 것이다 (및 경우에 따라 더 수행 할 수있다). 다음은 두 가지 접근 방식을 비교하여 좋은 article입니다.

회의론자 용 jsperf 페이지

+0

+1 너무 분명하고 아직 너무 직관적이지는 않습니다 ... – Mehrdad

2

배열에서 결합을 사용할 수 있습니다.

var strArray = [ 
    "test1", 
    "test2", 
    "test3" 
]; 

var output = strArray.join(", "); 

여기에 여기에 몇 가지 방법의 jsperf 테스트입니다 : http://jsperf.com/joining-strings. 결합은 분명 내가 시도한 방법 중 가장 빠른 것입니다 (Chrome에서는 3 배 이상).

jsperf를 직접 사용해 보거나 자신이 신경 써야 할 모델을 직접 변경해야합니다. 놀랍게도 Firefox 6과 Safari 5는 .join()을 사용하는 것보다 더 많은 문자열을 함께 추가하는 것보다 빠릅니다.

당신은 linear 실행 시간을 가진 해결책을 찾고 있다고하셨습니다. 나는 그것이 문자열의 갯수를 두 배로 늘리면 성능이 이중보다 나쁘지 않다는 것을 의미한다고 생각합니다. 즉, 다양한 사례를 테스트하고 어떤 기술이 선형 성능에 가장 근접했는지 확인해야합니다. first jsperf은 9 개의 문자열과 그 사이의 구분자를 연결했습니다. 그래서 나는 그들 사이에 분리 기호가있는 18 개의 문자열을 연결 한 second jsperf을 작성했습니다. Chrome의 기술은 전혀 선형 적이 지 않았습니다. 이상하게도 가장 느린 전반적인 for 루프 + = 메서드는 선형에 가장 가깝습니다. 그래서, 나는 당신이 빠른 것인지 아니면 선형적인 것인지를 결정해야한다고 생각합니다. 내가 시도한 가장 느린 방법은 선형에 가장 가깝지만 느리다. 실제로 많은 수의 문자열을 연결하는 경우 선형성 또는 전체 성능 중 어느 것이 적합한 지 확인하기 위해 특정 사례를 테스트해야합니다.

+0

+1 너무 분명하고 아직은 직관력이 없습니다 ... – Mehrdad

관련 문제