2016-11-22 7 views
0

私は、牛の量(例として牛)に異なる変数があり、オブジェクトが特定のパターンに従わないオブジェクトを持っています。異なるキーン名で、同じ配置でオブジェクトをループする方法

var cow = [ 
      //{variable: amount, name: "name"}, 
      {redcow: 0, name: "Redcow"}, 
      {bluecow: 0, name: "Bluecow"}, 
      {yellowcow: 0, name: "Yellowcow"}, 
      {purplecow: 0, name: "Purplecow"}, 
      {greencow: 0, name:"Greencow"}] 

は今、私はループを作りたいというその後、牛の種類ごとの量、および出力用牛や小切手の異なる種類を循環。

+0

グレート、それを作ります! – nicovank

+0

しかし、私は助けが必要です:/以来、私は牛(variablename)と変数を別々の名前を持っているのでループすることができません。 – Bjartfjord

+0

名前は金額のキー(小文字)と相関していますか? –

答えて

1

あなたがキーを反復処理し、名前と同等ではないだけを使用することができます。あなたは本当にこのような構造と量のキーを使用したい場合は

は小文字の名前です。 。

var cow = [{ redcow: 1, name: "Redcow" }, { bluecow: 2, name: "Bluecow" }, { yellowcow: 3, name: "Yellowcow" }, { purplecow: 4, name: "Purplecow" }, { greencow: 5, name: "Greencow" }]; 
 

 
cow.forEach(function (o) { 
 
    var countKey; 
 
    Object.keys(o).some(function (k) { 
 
     if (k !== 'name') { 
 
      countKey = k; 
 
      return true; 
 
     } 
 
    }); 
 
    console.log(o.name, o[countKey]); 
 
});

0

あなたのご意見はありますが、あなたのデータ構造はちょっと壊れています。 は、なぜあなたは

{amount: 0, name: "Redcow"} 

代わりの

{redcow: 0, name: "Redcow"} 

を使用していませんか?

名前と金額を表示するのは簡単です。

var cows = [ 
 
      //{variable: amount, name: "name"}, 
 
      {redcow: 3, name: "Redcow"}, 
 
      {bluecow: 5, name: "Bluecow"}, 
 
      {yellowcow: 4, name: "Yellowcow"}, 
 
      {purplecow: 2, name: "Purplecow"}, 
 
      {greencow: 1, name:"Greencow"}, 
 
      {whatevercow: 99, name:"Orangecow"} 
 
]; 
 

 
for (i = 0; i < cows.length; i++) { 
 
    var cow = cows[i]; 
 
    var name = cow.name; 
 
    var count = cow[name.toLowerCase()]; 
 
    console.log(name, count); 
 
}

0

var cow = [ 
 
    { 
 
     redcow: 0, 
 
     name: "Redcow" 
 
    }, { 
 
     bluecow: 0, 
 
     name: "Bluecow" 
 
    }, { 
 
     yellowcow: 0, 
 
     name: "Yellowcow" 
 
    }, { 
 
     purplecow: 0, 
 
     name: "Purplecow" 
 
    }, { 
 
     greencow: 0, 
 
     name: "Greencow" 
 
    } 
 
]; 
 

 
cow.forEach(function(item) { 
 
    var count = { 
 
     name: item.name, 
 
     amount: item[Object.keys(item)[0]] 
 
    } 
 
    console.log(count); 
 
});

+2

あなたは間違っている可能性があります注文に大きく依存しています。 –

+0

あなたは絶対に正しいです。別のキーが追加された場合、ソリューションが問題に対処しているかどうか分かりませんか? – JimmyBob

+1

希望するキーに使用するパターンがない場合、実際には問題になります。 –

関連する問題