提问者:小点点

解构并返回多个值


我是javascript的新手,现在正在学习破坏。 我试图实现的(在控制台中显示)是这样的:

名字:迈克·史密斯,父亲:哈里·史密斯

名字:汤姆·琼斯,父亲:理查德·琼斯

我收到一条错误消息,没有定义n,但它应该是ok的? 下面是我一直在做的代码:

null

const people = [
  {
    name: 'Mike Smith',
    family: {
      mother: 'Jane Smith',
      father: 'Harry Smith',
      sister: 'Samantha Smith'
    },
    age: 35
  },
  {
    name: 'Tom Jones',
    family: {
      mother: 'Norah Jones',
      father: 'Richard Jones',
      brother: 'Howard Jones'
    },
    age: 25
  }
];

const kalle= people.map(( {name: n, family: {father: f}})=> { 
return [n,f]
});
  
console.log('Name: ' + n + ', Father: ' + f);

// "Name: Mike Smith, Father: Harry Smith"
// "Name: Tom Jones, Father: Richard Jones"

null


共1个答案

匿名用户

nf在函数之外,这意味着您不能访问它们,而是在数组上循环。

销毁对象不需要键,除非值也是对象。

null

const people = [
  {
    name: 'Mike Smith',
    family: {
      mother: 'Jane Smith',
      father: 'Harry Smith',
      sister: 'Samantha Smith'
    },
    age: 35
  },
  {
    name: 'Tom Jones',
    family: {
      mother: 'Norah Jones',
      father: 'Richard Jones',
      brother: 'Howard Jones'
    },
    age: 25
  }
];

// Returns an array
const persons = people.map(({name, family: {father}})=> { 
  return [name, father];
});

// Log each person
persons.forEach(([name, father]) => {
  console.log(`Name: ${name}, Father: ${father}`);
});

// "Name: Mike Smith, Father: Harry Smith"
// "Name: Tom Jones, Father: Richard Jones"