2017-12-03 21 views
0

forループを使用して新しい変数を埋める方法を学ぶのに苦労しています。たとえば、var year = [2010, 2000, 1992];var age = [];があるとします。forループを使って配列を埋める方法は?

forループを使用して年齢変数を設定するにはどうすればよいですか?

これが悪い例の場合は、これを使用しないでください。私は空の配列をどのように埋めるのかを理解する助けが必要です。

var names = ["Ace", "yoshi", "Lassie"]; 
 
var age = [25, 23, 5]; 
 
var u24 = []; 
 
for (var i = 0; i < names.length; i++) { 
 
    if ([age] < 24) { 
 
    u24 += age[i] 
 
    console.log("hello " + names + " " + "you are" + age); 
 
    } 
 
}

+0

すでに試したことを投稿してください。もう少し文脈を与えてください。申し訳ありませんが、 – Intervalia

+0

ありがとう – Ace

+0

このコードをチェックして自分自身を試してください。 forEach関数とinsideループ関数を使うと、今年の年とストアで年を減算することができます。 https://www.w3schools.com/jsref/jsref_forEach.asp – Munna

答えて

2

関連するデータを含むオブジェクトを作成することをお勧めします。 nameageを人物オブジェクトに組み合わせると役立ちます。

var persons = [ 
 
    { 
 
    name: "Ace", 
 
    age: 25 
 
    }, 
 
    { 
 
    name: "yoshi", 
 
    age: 23 
 
    }, 
 
    { 
 
    name: "Lassie", 
 
    age: 5 
 
    } 
 
]; 
 
var u24=[]; 
 
for (var i =0; i < persons.length; i++) { 
 
    var person = persons[i]; 
 
\t if(person.age < 24){ 
 
\t \t u24.push(person.age); 
 
\t \t console.log("hello " + person.name + " " + "you are " + person.age); 
 
\t } 
 
} 
 
console.log(u24);

しかし、あなたはまた、このようforEachを使用することができます:あなたのループはから抜け出すことは決してありませんすべての関連データが含まれるオブジェクトを作ることで

var persons = [ 
 
    { 
 
    name: "Ace", 
 
    age: 25 
 
    }, 
 
    { 
 
    name: "yoshi", 
 
    age: 23 
 
    }, 
 
    { 
 
    name: "Lassie", 
 
    age: 5 
 
    } 
 
]; 
 
var u24=[]; 
 
persons.forEach(
 
    function(person) { 
 
    if(person.age < 24){ 
 
     u24.push(person.age); 
 
     console.log("hello " + person.name + " " + "you are " + person.age); 
 
    } 
 
    } 
 
); 
 
console.log(u24);

を同期。 persons配列から人を削除すると、nameageが一緒になります。

UPDATE:ES6アロー機能

var persons = [ 
 
     { name: "Ace", age: 25 }, 
 
     { name: "yoshi", age: 23 }, 
 
     { name: "Lassie", age: 5 } 
 
    ]; 
 

 
    var youngPersons = persons.filter((person) => person.age < 24); 
 

 
    console.log(youngPersons);

これは、ARをバック提供をフィルタ

var persons = [ 
 
    { 
 
    name: "Ace", 
 
    age: 25 
 
    }, 
 
    { 
 
    name: "yoshi", 
 
    age: 23 
 
    }, 
 
    { 
 
    name: "Lassie", 
 
    age: 5 
 
    } 
 
]; 
 

 
var youngPersons = persons.filter(
 
    function(person) { 
 
    return (person.age < 24); 
 
    } 
 
); 
 

 
console.log(youngPersons);

を使用して、または使用してあなたのAge under 24基準に一致する人のX線。

+0

'forEach'の代わりに' filter'を使うだけです。 – Xufox

+0

フィルタリングされたリストを取得しようとしているだけの場合、 'filter'は動作します。 @Aceは彼の意図を投稿しなかったので、私は別の意図を仮定したかもしれません。 – Intervalia

+0

ありがとうございます。クイック質問とそれはダムの質問かもしれませんが、プッシュを使用して横にu24に新しい情報を入れて別の方法は何ですか。それがそうであるように、それはu24 = person.ageですか? – Ace

0

有効なバージョン。 違いを確認するには、コードと比較してください。私が始めたとき、配列は常に私を得た、とブラケット記号の再利用にもかかわらず、言語間で異なるとの構文は.. AutoItの言語はまだ私をトリップ:P

var names = ["Ace", "yoshi", "Lassie"]; 
var age = [25, 23, 5]; 
//Use array.push() to append values 
var u24 = []; 

//variable i counts up to names.length 
//because i++ means 'add one' to i 

for (var i = 0; i < names.length; i++) { 
    //if ([age] < 24) {u24 += age[i]; 
    //age at the count 'i' (which is 
    //counting) 
    //is achieved by array[at_index] 
    if (age[i] < 24) { 
     u24.push(age[i]); //add it to the end 
     console.log("Hello " + names[i] + 
      ", you are " + age[i]); 
    } 
} 
+0

これは非常に役に立ちます。私は情報のすべてのビットが役立つように、JavaScriptの学習の私の最初の月にまだです。 – Ace

+0

問題はありません、我々はすべてそこにいた! P –

+0

自己教えをするだけでは難しいと知っていますが、ここに来て、質問をするのが遅く感じさせるようにしましょう。 htmlとcssは簡単でしたが、これはもう少し難しいです – Ace

2

をあなたがしたいすべてが記入された場合ループと年齢の配列は、あなたはこれを試すことができます:

年齢と名前の間の関係については

let years = [2010, 2000, 1992], 
 
    age = [], 
 
    d = new Date().getFullYear(); 
 

 
years.forEach(year => age.push(d - year)); 
 
console.log(age);

が、私はIntervaliaがそれを説明していると思います。

+0

ありがとうございました! – Ace