カテゴリー
コンピューター

【JavaScript】forEach でループ内の値を外に取り出す方法がわかりません><

ポイント

  • 「配列の要素プラス文字列」を連結するには、ループ外で宣言した変数に、ループ内で値を追加していけばよい。
  • 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 のドキュメントはこちらでございます。

渡した関数を実行するのですから、関数の返却値を上手に処理すればよいのかしらね。。。もう少し試せそうかしら。

以上です。

コメントを残す