2017-04-11 6 views
2

나는 내가 이걸 알아내는 것에 아주 가깝다고 생각하지만 난리를 치고 있었다.문자열을 연결하고 해당 값의 장소 색인에 대해 동일한 값을 추가 하시겠습니까?

나는 함수에 의해 취해진 모든 문자열을 splice하려고 시도하고 그 문자열을 그것이 문자열에 보유하고있는 장소에 추가 된 값을 반환하려고한다. 그것은이 같은 그 값을 반환합니다

let message = "abcd"; 

:이 기능이 같은 값 접수에

function addString(); 

그것을보고 좋았을 것이지만

console.log(addString(message)); 
"abbcccdddd" 
+0

당신이 시도하고 무엇을하거나 시도 작동하지 않습니다? –

+2

"나는 이걸 알아내는 것에 아주 가깝다."- 당신이 얼마나 가까이 있는지 보여줄 것을 고려해보십시오.) – Santi

+0

메시지가'bacc'이면 어떻게 될까요? – RomanPerekhrest

답변

1

반복 된 값을 매핑하고 단일 문자열에 조인 할 수 있습니다.

let message = "abcd", 
 
    result = [...message].map((c, i) => c.repeat(i + 1)).join(''); 
 

 
console.log(result);

+0

이것은 의도 한대로 작동합니다! 맵핑에 대해 생각했지만 각각을 시도했습니다. –

1

당신의 시도해보기 :

나는이 논리를 조작 한

function repeatChar(n, c){ 
    return Array(n+1).join(c); 
} 

당신은 방법을 사용하여 cn 발생을 만들 수 있습니다

93,210 는 ...이 대신하여 배열 길이를 증가 특히, 귀하의 질문에 맞게 1이므로 인덱스 0이 1 회 인쇄됩니다.

1

여기에 간결한 해결책 :

const result = 'abcd'.replace(/./g, (c, i) => c.repeat(i+1)); 
 

 
document.write(result);

주의 : 기능, constrepeat가 ES6와 함께 화살표.