2017-06-15 14 views
-2

これは基本的な質問ですが、私はJavaScriptで本当に新しいです。私は、関数を使わずに、出生の年の配列から人の年齢配列を作成する作業をループで行うだけです。JavaScriptでループを使って配列を作成する

これは私のコードは、これまでのところです:それは動作しませんし、右構文は何である理由

var yearsBorn = [1990, 1965, 1984, 1976, 1953, ]; 
    var ages = []; 
    for (var i = 0; i > 5; i++) { 
     ages[i] = 2017 - yearsBorn[i]; 
} 

あなたは私に説明していただけますか?

+0

'var i = 0; i> 5;それでは、いつ私は5歳以上になるのですか? – jdmdevdotnet

答えて

1

ループが実行されないためです。試してみてください:

for (var i = 0; i < 5; i++) { 
    ages[i] = 2016 - yerasBorn[i]; 
} 
1

forループの条件部分について正しいチェックが必要です。 i0で始まり、5より大きい番号をチェックするので、前のチェックは決してtrueではありませんでした。

i < yearsBorn.length 

var yearsBorn = [1990, 1965, 1984, 1976, 1953], 
 
    ages = []; 
 

 
for (var i = 0; i < yearsBorn.length; i++) { 
 
    ages[i] = 2016 - yearsBorn[i]; 
 
} 
 

 
console.log(ages);

あなたが代わりにforループのArray#mapを使用することができます。

map()方法は上の与えられた関数を呼び出した結果、新しい配列を作成します呼び出し配列内のすべての要素。

var yearsBorn = [1990, 1965, 1984, 1976, 1953], 
 
    ages = yearsBorn.map(function (year) { 
 
     return 2016 - year; 
 
    }); 
 

 
console.log(ages);

2
for (var i = 0; i > 5; i++) { 

この反復する限り、私は0から始まるように私は5より大きな、それは反復しないと。実行します。それはあなたが持っていた
配列内の要素の最大数に達するまで

for (var i = 0; i<yerasBorn.length; i++) { 
1

これは正しい構文

var yerasBorn = [1990, 1965, 1984, 1976, 1953 ]; 
var ages = []; 
for (var i = 0; i < yerasBorn.length; i++) { 
    ages[i] = 2016 - yerasBorn[i]; 
} 

yerasBorn.lengthは、配列の長さである
i < yerasBorn.lengthので、ループが実行されます余分なコンマも含めてvar yerasBorn = [1990, 1965, 1984, 1976, 1953];

0

これは愚かな間違いでした。
ループ内の条件が間違っていました。

代わり

(var i = 0; i > 5; i++) 

のそれがあるべき

(var i = 0; i < 5; i++) 
私は年齢を更新してしまうので、変数として現在の年を作成することによって、それがより一般的になります
0

var currentYear = new Date().getFullYear(); 
 
var yearsBorn = [1990, 1965, 1984, 1976, 1953], 
 
    ages = []; 
 

 
for (var i = 0; i < yearsBorn.length; i++) { 
 
    ages[i] = currentYear - yearsBorn[i]; 
 
} 
 

 
console.log(ages);

関連する問題