2017-08-19 21 views
0

現在、push()機能を使用して、アレイ内の異なるユーザーの安全なデータを試しています。ここ
は私の現在のコードです:Javascript push() - 未定義出力

function data() 
{ 

    var information = []; 
    var imgs = ''; 
    var percentage; 

    var imgs = 'ABC'; 
    var percentage = '1'; 

    information.push({ imgs: imgs, chance: percentage }); 

    var imgs = 'DEF'; 
    var percentage = '2'; 

    information.push({ imgs: imgs, chance: percentage }); 

    console.log(information); 

    information.forEach(function(deposit) 
    { 
     var deposit=deposit.imgs; 
     var chance=deposit.chance; 

     console.log(deposit); 
     console.log(chance); 
    }); 


} 

これはconsole.log(information)の出力です:

[ { imgs: 'ABC', chance: '1' }, { imgs: 'DEF', chance: '2' } ] 

そして、これはinformation.forEach(function(deposit)の出力である:その時

ABC 
undefined 
DEF 
undefined 

は私の問題です。 ご覧のとおり、undefinedというチャンスを出力しますが、1と2を出力するはずです。 なぜそれがそれを行い、どのように修正できるか知っていますか?次の行で

答えて

5

、あなたはあなたの預金のオブジェクトは、再割り当て:

var deposit=deposit.imgs; 

ただ、この変数名を変更します。または、入金する前にチャンスを割り当てる。

+1

そうそう、おかげで多く、それはそれを修正! :) – Lukeyyy

+0

私はそれが助けてうれしい!あなたが使用したものであれば回答を受け入れることを検討するかもしれません:) –

2

forEach関数のパラメータであるdeposit変数に値を割り当てています。

したがって、の変数をvar deposit = deposit.imgs;に変更して、他の任意の変数に変更し、さらにログステートメントの変更を更新します。 console.log(**deposit**);

私はそれがあなたの問題を解決することを願っています。

0

あなたがここに var deposit=deposit.imgs;預金は別の変数の宣言で宣言したので、それは定義されていません。それは未定義を発生しますので、 そして、次の行 var chance=deposit.chance;この預金は、上記var depositから得ています。 var deposit=deposit.imgs;var images = deposit.imgs;

のように変更してください。

0

forEachの中にバグがあります。informationです。基本的に現在のコードはのforEachを(文字列に)上書きします。

forEachの変数の名前を次のように変更すると、この問題を解決できます。

function data() { 
 
    var information = []; 
 
    var imgs = ''; 
 
    var percentage; 
 

 
    var imgs = 'ABC'; 
 
    var percentage = '1'; 
 

 
    information.push({ 
 
    imgs: imgs, 
 
    chance: percentage 
 
    }); 
 

 
    var imgs = 'DEF'; 
 
    var percentage = '2'; 
 

 
    information.push({ 
 
    imgs: imgs, 
 
    chance: percentage 
 
    }); 
 

 
    console.log(information); 
 

 
    information.forEach(function(deposit) { 
 
    // change name of variables 
 
    var depositImgs = deposit.imgs; 
 
    var depositChange = deposit.chance; 
 

 
    console.log(depositImgs); 
 
    console.log(depositChange); 
 

 

 
    }); 
 
} 
 
data();

関連する問題