我正在处理一个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]],而不是字符串,['熊','企鹅',豹','跳蚤']。有关如何获得所需输出的任何建议都非常感谢。
答案 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]]);