【问题标题】:destructure object if value of some key is possibly null [closed]如果某个键的值可能为空,则解构对象 [关闭]
【发布时间】:2018-12-31 17:02:55
【问题描述】:

我正在解构map 函数中的对象,对象可能包含对象的某些键的值null。如下所示:

{key1, key2} = {key1 : null,key2:'someval'}

我看到错误提示 key1 未定义。我做错了什么?

【问题讨论】:

  • 请发布足够的代码来重现错误。

标签: javascript object ecmascript-6 destructuring


【解决方案1】:

您需要使用letvar 声明变量,例如var {key1, key2}

var {key1, key2} = {key1 : null,key2:'someval'};
console.log(key1);
console.log(key2);

使用{key1, key2} 会给你这个错误:

{key1, key2}

【讨论】:

  • 我在 map 函数中进行解构,其中传递的函数将得到一个如上定义的对象。所以这不会起作用。
【解决方案2】:

如果没有(或更早)声明和直接赋值,您需要在表达式周围加上括号以进行解构以区分对象括号和块语句。

({ key1, key2 } = { key1: null, key2: 'someval'});

console.log(key1, key2);

【讨论】:

  • 我在地图函数的回调中使用它,例如 ({key1, key2})=>console.log(ke1, key2))
  • 请将您尝试过的整个代码添加到问题中。
猜你喜欢
  • 2020-12-14
  • 2021-05-10
  • 2021-12-29
  • 2017-12-25
  • 1970-01-01
  • 2016-02-17
  • 2020-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多