作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据Mozilla docs ,这里是如何在 for of
循环中使用解构:
var 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
}
];
for (var {name: n, family: {father: f}} of people) {
console.log('Name: ' + n + ', Father: ' + f);
}
// "Name: Mike Smith, Father: Harry Smith"
// "Name: Tom Jones, Father: Richard Jones"
我的问题是,如果 family
对象位于数组中,正确的解构语法应该是什么,如下所示:
var people = [
{
name: 'Tom Jones',
family: [
{
mother: 'Norah Jones',
father: 'Richard Jones',
brother: 'Howard Jones'
}
],
age: 25
}
];
(注意额外的一组[方括号])
试图解构使用:
for (var {name: n, family[0]: {father: f}} of people) {
console.log('Name: ' + n + ', Father: ' + f);
}
在方括号处给出一个 Unexpected token
错误。
那么在这个例子中,我该如何使用解构来给f
赋值呢?
最佳答案
您想要表示的数组结构,而不是数组索引访问。
var people = [{
name: 'Tom Jones',
family: [{
mother: 'Norah Jones',
father: 'Richard Jones',
brother: 'Howard Jones'
}],
age: 25
}];
// Describe the structure -v-----------v
for (var {name: n, family: [{father: f}]} of people) {
console.log('Name: ' + n + ', Father: ' + f);
}
当然,这假设您只需要第一个成员。如果你想要更多,你可以使用 rest 语法。
var people = [{
name: 'Tom Jones',
family: [{
mother: 'Norah Jones',
father: 'Richard Jones',
brother: 'Howard Jones'
}],
age: 25
}];
for (var {name: n, family: [{father: f}, ...rem]} of people) {
console.log('Name: ' + n + ', Father: ' + f);
console.log("Remaining values: %s", rem.length);
}
关于javascript - for...of 对数组中的对象进行迭代和解构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46384992/
为什么 pickle 重用现有的 Python 类“C”而不是从 pickle 字节重建类?有没有一种方法可以在没有副作用的情况下 pickle 和解 pickle ? 这是我的回复 session
我是一名优秀的程序员,十分优秀!