为了账号安全,请及时绑定邮箱和手机立即绑定

在JS中像数组一样解构对象?

在JS中像数组一样解构对象?

牛魔王的故事 2021-10-21 14:44:48
鉴于以下代码:const civic = {make: 'Honda', model: 'Civic'};function logArgs(make, model) {  console.log(make);  console.log(model)}我想做这个:logArgs(...civic);代替:logArgs(civic.make, civic.model);我得到:(index):39 Uncaught TypeError: Found non-callable @@iterator有什么方法可以解构像数组这样的对象,还是我试图做的事情是不可能的?
查看完整描述

3 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

在参数中使用解构


const civic = {make: 'Honda', model: 'Civic'};


function logArgs({make, model}) {

  console.log(make);

  console.log(model)

}


logArgs(civic)


查看完整回答
反对 回复 2021-10-21
?
冉冉说

TA贡献1877条经验 获得超1个赞

logArgs(...Object.values(civic))

请注意,这将取决于对象的顺序,这可能很棘手


查看完整回答
反对 回复 2021-10-21
?
HUX布斯

TA贡献1876条经验 获得超6个赞

对于传播,您需要Symbol.iterator为对象实现 a ,因为对象没有内置迭代器。


这种方法只采用值,但任何其他方法都可以工作,比如返回条目。


function logArgs([make, model]) {

  console.log(make);

  console.log(model)

}


const civic = { make: 'Honda', model: 'Civic' };


civic[Symbol.iterator] = function* () {

    yield Object.values(civic);

};


logArgs(...civic);


查看完整回答
反对 回复 2021-10-21
  • 3 回答
  • 0 关注
  • 195 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信