Javascript:从对象中的数组返回第一个值

时间:2016-11-27 22:38:30

标签: javascript arrays object

我正在处理一个javascript作业问题而且有点卡住了:

创建一个名为getFirstAnimals的函数,该函数返回对象中所有第一个动物的数组。 例如:['熊','企鹅',豹','跳蚤']

我编写了以下函数:

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));

我的问题是我生成的输出是由第一批动物组成的数组数组,[Array [1],Array [1],Array [1],Array [1]],而不是字符串,['熊','企鹅',豹','跳蚤']。有关如何获得所需输出的任何建议都非常感谢。

4 个答案:

答案 0 :(得分:1)

而不是推动array[key].slice(0,1),您需要推送array[key][0],其中[0]将为您提供数组中的第一项。

答案 1 :(得分:1)

您可以使用

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

为此。它从数组中获取第一个元素

答案 2 :(得分: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));

答案 3 :(得分:0)

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