2017-06-03 18 views
2

次のコードは、{html:何でも番号:数値値}のように構造化されたオブジェクトの配列をとります。forループの最初の反復で配列のみが更新されます

function Org(data){ 
//array of objects 
var Data=data; 
for(var i=0; i<Data.length; i++){ 
    var nums=[]; 
    nums.push(Data[i].number); 
console.log(nums);} 
} 

NUMS [1,1]のようにして呼び出されたときに2回目の繰り返しのコンソールに記録されているべきである:[{HTML:ヌル、数:1}、{HTML:ヌル、数:1}]第1回目と第2回目の両方で[1]と記録されます。これはなぜでしょうか?

+1

配置するvar NUMSは= []ループの外 – Lalit

答えて

6

forループの外側でnumの初期化を移動する必要があります。内部では、繰り返しごとに新しい空の配列が作成されます。

ところで、dataの別の変数を使用する必要はありません。

function Org(data){ 
    var nums = []; 
    for (var i = 0; i < data.length; i++){ 
     nums.push(data[i].number); 
    } 
    console.log(nums); 
} 
1

またはより短い:

var Org=data=>console.log(data.map(e=>e.number)); 
関連する問題