2017-12-04 8 views

答えて

3

これは、配列の削減と文字列の置換で実現できます。

var arr = ["a","b","c"]; 
 
var s = "Hello {1} is a friend of {2} and {3}"; 
 

 
var result = arr.reduce((str, replacement, idx) => { 
 
    return str.replace(`{${idx + 1}}`, replacement) 
 
}, s); 
 

 
console.log(result);

2

あなたはES6でtemplate stringsを探しています。

const arr = ['a', 'b', 'c']; 

const string = `Hello ${arr[0]} is a friend of ${arr[1]} and ${arr[2]}`; 

Addind ES5でのいくつかのdestructuring

const [ 
    a, 
    b 
    c, 
] = ['a', 'b', 'c']; 

const string = `Hello ${a} is a friend of ${b} and ${c}`; 

@EDIT、古き良き

var arr = ['a', 'b', 'c']; 

var string = 'Hello ' + arr[0] + ' is a friend of ' + arr[1] + ' and ' + arr[2]; 

enter image description here

+0

私はプレーンJSでそれを書きたいと彼は –

+0

をES6ありません@PramodMg ES6は平易ですJS – nem035

+0

私はes5で意味しています@ nem035 –

0

あなたは正規表現と文字列.replace方法でこれを行うことができます。

var arr = ["a","b","c"]; 
 
var str = "Hello {1} is a friend of {2} and {3}" 
 

 
var newstr = str.replace(/\{(\d)\}/gm, (_m, i) => { 
 
    const index = Number(i) - 1; 
 
    return arr[index] 
 
}); 
 

 
console.log(newstr)

関連する問題