Javascript 从对象数组中,返回新数组中的键
我有一个对象数组,必须返回一个新数组中的关键小狗: 此函数采用以下格式的狗数组:Javascript 从对象数组中,返回新数组中的键,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有一个对象数组,必须返回一个新数组中的关键小狗: 此函数采用以下格式的狗数组: [ {breed: 'Labrador', puppies: ['Fluffy', 'Doggo', 'Floof'] }, {breed: 'Rottweiler', puppies: ['Biscuits', 'Mary'] } ] 它应该返回所有狗的所有小狗的数组: ['Fluffy', 'Doggo', 'Floof', 'Biscuits', 'Mary'] 这是我目前的代码: functio
[
{breed: 'Labrador', puppies: ['Fluffy', 'Doggo', 'Floof'] },
{breed: 'Rottweiler', puppies: ['Biscuits', 'Mary'] }
]
它应该返回所有狗的所有小狗的数组:
['Fluffy', 'Doggo', 'Floof', 'Biscuits', 'Mary']
这是我目前的代码:
function collectPuppies (dogs) {
let solution=[];
for(let i=0; i<dogs.length; i++){
solution.push(dogs[i].puppies);
}
return solution;
}
我已经在线程中看到了我的解决方案,所以我相信我还不算太远,但无法找出我做错了什么。有人能帮我吗?提前感谢。使用将项目推入阵列:
康斯特犬=[{品种:拉布拉多,小狗:[毛茸茸的,多哥的,弗洛夫的]},{品种:罗特韦尔犬,小狗:[饼干,玛丽]};
小狗的功能{
常数解=[];
对于let i=0;i在对象数组中,小狗也是一个数组。因此,您将向数组中添加一个数组。而不是:
solution.push(dogs[i].puppies);
您需要在puppies数组中循环,并将每个puppies分别添加到解决方案数组中。第二个内部循环不是将“puppies”字段添加到解决方案数组,而是循环每个对象的puppies数组并将其添加到解决方案数组。第二个内部循环可以通过调用puppies数组上的forEach轻松完成。例如:
dogs[i].puppies.forEach((puppy) => {solution.push(puppy)});
最后一个功能是:
function collectPuppies (dogs) {
let solution=[];
for(let i=0; i<dogs.length; i++){
dogs[i].puppies.forEach((puppy) => {solution.push(puppy)});
}
return solution;
}
在对象数组中,小狗也是一个数组。因此,您将向数组中添加一个数组。而不是:
solution.push(dogs[i].puppies);
您需要在puppies数组中循环,并将每个puppies分别添加到解决方案数组中。第二个内部循环不是将“puppies”字段添加到解决方案数组,而是循环每个对象的puppies数组并将其添加到解决方案数组。第二个内部循环可以通过调用puppies数组上的forEach轻松完成。例如:
dogs[i].puppies.forEach((puppy) => {solution.push(puppy)});
最后一个功能是:
function collectPuppies (dogs) {
let solution=[];
for(let i=0; i<dogs.length; i++){
dogs[i].puppies.forEach((puppy) => {solution.push(puppy)});
}
return solution;
}
{puppies}=>puppies vs.d=>d.小狗:思考:尽管d。比较短,我喜欢解构,因为它关注方法中重要的内容。即使我慷慨大方,使用dog=>dog.puppies,我还是更喜欢它,而不是那些乱七八糟的括号/括号。在这种情况下,没有必要去破坏结构,这就可以解释了,因为我肯定不会:{puppies}=>puppies vs.d=>d.puppies:思考:虽然d。比较短,我喜欢解构,因为它关注方法中重要的内容。即使我慷慨大方,使用dog=>dog.puppies,我还是更喜欢它,而不是那些乱七八糟的括号/括号。在这种情况下,没有必要破坏结构。这可以解释为什么,因为我肯定不会: