ポイント
- 「配列の要素プラス文字列」を連結するには、ループ外で宣言した変数に、ループ内で値を追加していけばよい。
- for を使えば簡単に実現できる。
- forEach を使う方法は不明。
実際のコード
// 「配列の要素プラス文字列」を連結したい。
// OK
var array = [1, 3, 5];
var v = '';
for (i = 0, max = array.length; i < max; i++) {
v += array[i] + '連結';
}
console.log(v); // 1連結3連結5連結
// forEach でループ内の値を外に取り出す方法がわからない。
// NG
var v = '';
[1, 3, 5].forEach(function(element, index, array) {
this = element; // this += element; でももちろんダメ
}, v);
console.log(v);
// Uncaught ReferenceError: Invalid left-hand side in assignment
// at Object.InjectedScript._evaluateOn (<anonymous>:904:140)
// at Object.InjectedScript._evaluateAndWrap (<anonymous>:837:34)
// at Object.InjectedScript.evaluate (<anonymous>:693:21)
// InjectedScript._evaluateOn @ VM252:904
// InjectedScript._evaluateAndWrap @ VM252:837
// InjectedScript.evaluate @ VM252:693
// forEach でループした要素の値を取り出す使い方として、次はOK。
var v = [];
[1, 3, 5].forEach(function(element, index, array) {
this[index] = element;
}, v);
console.log(v); // [1, 3, 5]
おわりに
forEach のドキュメントはこちらでございます。
渡した関数を実行するのですから、関数の返却値を上手に処理すればよいのかしらね。。。もう少し試せそうかしら。
以上です。
