javascript - 对象数组的解构变得未定义
问题描述
我试图解构 Array 对象,但未定义。
var menus = [{
food: "pizza",
drink: "coke"
}, {
food: "burger",
drink: "pepsi"
}, {
food: "sandwitch",
drink: "coke"
}, {
food: "popcorn",
drink: "coke"
}];
var {
food: team,
drink: sports
} = menus;
console.log({
team
});
输出:团队未定义。
这似乎是一个语法问题。
解决方案
您需要解构数组内的对象。
您可以将数组解构与对象解构(本例中的第一项)一起使用:
const menus = [{"food":"pizza","drink":"coke"},{"food":"burger","drink":"pepsi"},{"food":"sandwitch","drink":"coke"},{"food":"popcorn","drink":"coke"}];
const [{ food:team,drink:sports }] = menus;
console.log({team});
或者解构数组中的特定对象:
const menus = [{"food":"pizza","drink":"coke"},{"food":"burger","drink":"pepsi"},{"food":"sandwitch","drink":"coke"},{"food":"popcorn","drink":"coke"}];
const { food:team,drink:sports } = menus[2];
console.log({team});
要将所有值获取到新数组,请使用Array.map()
:
const menus = [{"food":"pizza","drink":"coke"},{"food":"burger","drink":"pepsi"},{"food":"sandwitch","drink":"coke"},{"food":"popcorn","drink":"coke"}];
const teams = menus.map(({ food: team }) => ({ team }));
console.log(teams);
推荐阅读
- javascript - 如何在剑道网格上分页或更改选项卡时保持选择复选框状态
- unit-testing - Java - 使用 Matchers 对 void 方法进行单元测试
- javascript - 对象数组是否存在已知问题?例如,当给 a[0].name 赋值时,元素 a[1].name 也得到相同的值
- c# - 导航到下一页时丢失模型数据
- python - 关于如何添加颜色的散点图?
- python - pyuic5.exe 不输出任何内容并清除输入文件
- c# - 写入 Input 键的字符串名称
- dart - 我们如何在flutter Text或RichText中使用上标和下标文本
- mysql - 用于处理员工能力的 SQL 架构设计
- electron - 如何获取正在运行的浏览器进程并获取电子 JS 中的当前活动 url?