繁体   English   中英

在数组推送中破坏 es6

[英]destructing es6 in array push

我想在ES6中使用destructing assignment之类的东西来获得更简洁的代码,但我不知道如何在推入数组之类的东西中使用它,或者无论如何可以使用它或类似的东西? 此示例代码在vue js中:

result.map((item) => {
   this.virtualWallets.push({
      credit: item.credit,
      type: item.type,
      name: item.name,
      symbol: item.symbol,
      image: item.image,
      address: item.address,
      address_tag: item.address_tag,
      auto_transfer: item.auto_transfer,
   });
});

试试这个代码:

result.map((item) => {
  const {credit_formatted, type, name, symbol, image, address, address_tag, auto_transfer} = item;
  this.virtualWallets.push({
    credit: credit_formatted,
    type: type,
    name: name,
    symbol: symbol,
    image: image,
    address: address,
    address_tag: address_tag,
    auto_transfer: auto_transfer,
  });
});

或这个:

result.map(({credit_formatted, type, name, symbol, image, address, address_tag, auto_transfer}) => {
  this.virtualWallets.push({
    credit: credit_formatted,
    type: type,
    name: name,
    symbol: symbol,
    image: image,
    address: address,
    address_tag: address_tag,
    auto_transfer: auto_transfer,
  });
});

然后您可以删除不必要的单词,如下所示:

result.map(({credit_formatted, type, name, symbol, image, address, address_tag, auto_transfer}) => {
  this.virtualWallets.push({
    credit: credit_formatted,
    type,
    name,
    symbol,
    image,
    address,
    address_tag,
    auto_transfer,
  });
});

你可以尝试这样的事情。

result.map(({credit_formatted, type, name, symbol, image, address, address_tag, auto_transfer}) => {
      this.virtualWallets.push({
        credit: credit_formatted,
        type,
        name,
        symbol,
        image,
        address,
        address_tag,
        auto_transfer,
      });
    });

根据您对@Athish Murugan 的回答的评论:

你也可以像这样解构:

let virtualWallet = this.virtualWallets.find(wallet => wallet.symbol === 'x');

const [name, symbol, credit, address_tag] = virtualWallet;

this.selectedVirtualWallet.name = name;
this.selectedVirtualWallet.symbol = symbol;
this.selectedVirtualWallet.credit = credit;
this.selectedVirtualWallet.address_tag = address_tag;;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM