2011-07-14 12 views
0

私は解決しようとしている課題に問題があります。初心者のJavascriptの問題....配列を繰り返し処理する

私は、ほとんどの場合次のようなタスクを設定しました。

1)配列内の各番号で、各番号の配列値とその関連説明を画面(順序付けられていないリスト)に出力します。

そして、コードは次のようにこのタスクを実行することです。

var numbers = [ 
    '1', 
    '2', 
    '3', 
    '4', 
    '5', 
    '6' 
], 

description = { 
    'One': 'Number one', 
    'Two': 'Number two', 
    'Three': 'Number three', 
    'Four': 'Number four', 
    'Five': 'Number five', 
    'Six': 'Number six' 
}; 

誰もが何らかのループを使用してこれを解決する方法を知っていますか?

あなたはまた、何が起こっているかを私に説明するためにコメントで私に説明することができればそれは素晴らしいだろう。

よろしく、

B

+0

あなたは3' 'から' Three'を取得意味しますか? –

+0

私は、スクリーン上に結果を印刷することができないということを意味しません。 '1 Number one' –

+0

スペックはほとんど意味がありません。オブジェクトのプロパティはソートされていないので、リンクする信頼性の高い方法はありません。オブジェクトプロパティ "Three"を持つインデックス2の配列項目( "3"になる)彼らの唯一の実際のリンクは、 "three"が3番の英単語であるということです。 –

答えて

0

、そのオブジェクトのインデックス値に対応する記述含む各オブジェクト:

// assign an array of objects 
// numbers[3] for example contains {name: 'Three', description: 'Number three'} 
var numbers = [ 
    {name: 'Zero', description: 'Zip!'}, 
    {name: 'One', description: 'Number one'}, 
    {name: 'Two', description: 'Number two'}, 
    {name: 'Three', description: 'Number three'}, 
    {name: 'Four', description: 'Number four'}, 
    {name: 'Five', description: 'Number five'}, 
    {name: 'Six', description: 'Number six'} 
], 
// a results container 
result = []; 
// iterate through the numbers array and push a string 
// string containing index, name and description to 
// result 
for (var i=0;i<numbers.length,i=i+1){ 
    result.push(i+': name = '+numbers[i].name+ 
       ', description = '+numbers[i].description); 
} 
// show the result, joining the result array into a string, 
// separated by a line break '\n' 
alert(result.join('\n')); 

/* alerts: 
0: name = Zero, description = Zip! 
1: name = One, description = Number one 
2: name = Two, description = Number two 
3: name = Three, description = Number three 
4: name = Four, description = Number four 
5: name = Five, description = Number five 
6: name = Six, description = Number six 
*/ 
0

for(var prop in description) { 

    alert(prop+"::"+description[prop]); 
} 
 

これは、あなたの記述オブジェクトを反復するのに役立ちます。配列の値に合わせて変更することができます。あなたがオブジェクトの配列を割り当てることができます

+0

for(var ... in)ループはかなり直感的であることに注意する価値があります。 **の説明については、http://javascript.crockford.com/code.htmlの説明を参照してください。 –

+0

@ÁlvaroG. Vicario ok私はリンクを読むが、その文脈でのforの使い方は何か問題がある。 –

+0

私はそれが正しいか間違っていると主張していません。私はちょうどその行為が直感が示唆しているものではないことを述べています(そして、私はどんな場合でも配列については推奨しません)。 –

関連する問題