解构对象数组变得不确定

时间:2018-09-01 13:51:32

标签: javascript ecmascript-6

我试图破坏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
 });

输出:团队未定义。

这似乎是语法问题。

1 个答案:

答案 0 :(得分:1)

您需要破坏数组内部的对象。

您可以将数组解构与对象解构一起使用(在本例中为第一项):

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);