2017-05-25 13 views
0

forループを実行するだけで数値の奇数インデックスを返すことができますが、関数に変換しようとしているときに、何も返さない?配列内の奇数位置にある要素を返す関数を書く方法


 
    function oddArrayIndex(arrayName, emptyIndex) { 
 
    for (var i = 1; i < arrayName.length; i += 2) { 
 
     emptyIndex.push(arrayName[i]); 
 
     } 
 
    } 
 
    var arr = [ 1, 2, 3, 4, 5, 6, 7]; 
 
    var oddIndex = []; 
 
    oddArrayIndex(arr, oddIndex);

+0

'oddArrayIndex'は' return'文を持っていませんあなたはそれが何を返すと思いますか?すべての値を2番目の引数に追加するので、 'oddArrayIndex'を呼び出した後、' oddIndex'は値を​​保持します。これは珍しいデザインの決定ですが、それは機能します。新しい機能の場合はhttp://eloquentjavascript.net/03_functions.htmlをご覧ください。 –

+0

forループの後にreturnステートメント –

+0

で新しい配列を手動で返す必要があります。関数内の配列を変更しています。代わりに、関数内に新しい配列を作成し、それを返します。 – Li357

答えて

0

ただ、唯一の奇数の値を持つ配列を返す配列フィルタ:、

var array = [1,2,3,4,5]; 
 
console.log(array.filter(function(el, ind){ 
 
    return ind % 2 === 0; 
 
}));

+0

代わりに質問を閉じる作業中の質問に答えないでください。 –

+0

@NinaScholz私はこのルールを知らなかったことを本当に残念です。次回にやる – quirimmo

関連する問題