2016-11-27 7 views
0

内の配列から最初の値を返す:Javascriptを:私はjavascriptの宿題の問題に取り組んでいますし、ビットが立ち往生していたオブジェクト

オブジェクト内のすべての最初の動物の配列を返すgetFirstAnimalsという関数を作成します。 例:[「熊」、「ペンギン」、パンサー」、 『ノミ』]

Iは、次の関数スクリプト:私の問題は、私は発生していた出力が配列の配列であることである

var animals = { 
mammals:['bears','lions','whales','otters'], 
birds:['penguins','ducks','swans','chickens'], 
cats:['panther','mountain lion','leopard','snow tiger'], 
insects: ['flea','mosquito','beetle','fly','grasshopper'] 
} 

function getFirstAnimals(array) { 
    var firstAnimals = []; 
    for (key in array) { 
     firstAnimals.push(array[key].slice(0,1)) 
    } 
    return firstAnimals; 
} 

console.log(getFirstAnimals(animals)); 

を最初の動物[配列[1]、配列[1]、配列[1]、配列[1]]で構成され、文字列ではありません['bears'、 'penguins'、panther '、' flea '] 。希望の出力を得る方法に関する提案は非常に高く評価されます。

+0

が答えに加えて、あなたはおそらく、いくつかの健全性チェックをしたいです:1.プロトタイプに存在する要素を反復処理しないように、array.hasOwnProperty(key)をチェックし、配列[key] .length> 0をチェックして空の配列がないことを確認します。 – PMV

+0

@PMVは良いコメントを出します。また、getFirstAnimals関数 "array"にパラメータの名前を付けましたが、渡すものは実際にはオブジェクトです。 – alexoakley1

+0

'getFirstAnimals'に渡すパラメータは配列ではなく、*オブジェクト*です。グローバル(' window.') 'key'変数を持っていれば、あなたはそれを上書きしました。 – Tyblitz

答えて

1

array[key].slice(0,1)を押すのではなく、array[key][0]をプッシュする必要があります。[0]は、配列の最初の項目を取得しています。

+0

ありがとうalexoakley1。私はそのような騒ぎです。 – aguadamuz

+0

配列の最後の項目を返すように関数を調整する方法はありますか? – aguadamuz

+0

@aguadamuz - '[0]'の代わりに '[array [key] .length-1]'を使って最後の項目を取得することができます。私があなたの質問に答えるならば、あなたは[accepting](http://stackoverflow.com/help/accepted-answer)私の答えを検討すべきです:) – alexoakley1

1

あなたはそのための

firstAnimals.push(array[key][0]) 

を使用することができます。これは、アレイ

0

さらに別のアプローチから最初の要素を取得します

var animals = { 
 
mammals:['bears','lions','whales','otters'], 
 
birds:['penguins','ducks','swans','chickens'], 
 
cats:['panther','mountain lion','leopard','snow tiger'], 
 
insects: ['flea','mosquito','beetle','fly','grasshopper'] 
 
} 
 

 
function getFirstAnimals(array) { 
 
    return Object.keys(array).map(v => array[v][0]); 
 
} 
 

 
console.log(getFirstAnimals(animals));

0

oneliner:console.log(animals[Object.keys(animals)[0]]);

関連する問題