Javascript ESLint如何应用;使用数组分解";?

Javascript ESLint如何应用;使用数组分解";?,javascript,arrays,eslint,airbnb,Javascript,Arrays,Eslint,Airbnb,假设我想做这样的事情: 让foo=myArray[1]; 我的项目配置了ESLint的AirBnb规则,它抛出了以下错误:“使用数组分解(首选分解)” 我通过以下方式解决了这个问题: let [, foo] = myArray; 然而,我看到两个问题:1。它很难看(在我看来很难读懂)和2。如果我试图访问数组的第20个元素,我必须使用20个逗号吗 我发现的解决方案显然是不可行的,那么有没有更好的方法来解决这个问题呢 然而,我看到两个问题:1。它很难看(在我看来很难读懂)和2。如果我试图访问数组

假设我想做这样的事情:

让foo=myArray[1];
我的项目配置了ESLint的AirBnb规则,它抛出了以下错误:“使用数组分解(首选分解)”

我通过以下方式解决了这个问题:

let [, foo] = myArray;
然而,我看到两个问题:1。它很难看(在我看来很难读懂)和2。如果我试图访问数组的第20个元素,我必须使用20个逗号吗

我发现的解决方案显然是不可行的,那么有没有更好的方法来解决这个问题呢

然而,我看到两个问题:1。它很难看(在我看来很难读懂)和2。如果我试图访问数组的第20个元素,我必须使用20个逗号吗

我同意这很难看,是的,您需要20个逗号才能单独访问元素20。如果这是一次或两次,考虑禁用该行的规则。

// eslint-disable-next-line prefer-destructuring
let foo = myArray[20];
如果你经常这样做,考虑完全禁用规则。在您的
eslint.rc
文件中:

{
  "rules": {
    "prefer-destructuring": "off",
  }
}

如果完全关闭它超出了您的需要(例如,您希望为对象保留它,但为阵列关闭它),您可以向eslint.rc添加一些不同的配置集。您可以看到各种配置选项

您可以将对象文字和数组组合在一起以获得

const {20: foo} = myArray;

在这里,
20
是一个关键,因为数组本质上就是带有方法的对象。

对于获取第20个索引非常有用,这就是如何应用数组分解。如果您不喜欢,请禁用或配置规则(请参阅),或者专门针对该行。如果您不喜欢airbnb规则推荐的样式,请不要使用它们?!这是我在AirBnb的所有规则中唯一不喜欢的规则,因此禁用ESLint的AirBnb没有多大意义。我也不希望只为某一行停用特定规则,因为我相信规则的存在是有原因的,我发布这个问题是为了理解这个原因。