ESLint dit que le tableau n'a jamais été modifié même si les éléments sont mis en place

Je convertis un code existant pour suivre le script ECMA et j'utilise ESLint pour suivre une norme de codage. J'ai la méthode ecmascript suivante

static getArrayOfIndices(text, char) { let resultArray = []; let index = text.indexOf(char); const lastIndex = text.lastIndexOf(char); while (index <= lastIndex && index !== -1) { resultArray.push(index); if (index < lastIndex) { index = text.substr(index + 1).indexOf(char) + index + 1; } else { index = lastIndex + 1999; // some random addition to fail test condition on next iteration } } return resultArray; } 

Pour la déclaration de resultArray, ESLint lance l'erreur

 ESLint: `resultArray` is never modified, use `const`instead. (prefer-const) 

Mais puisque les éléments sont poussés dans le tableau, n'est-ce pas en train d'être modifié?

Pour comprendre cette erreur, vous devez comprendre que les variables const déclarées contiennent des références en lecture seule à une valeur. Mais cela ne signifie pas que la valeur qu'il détient est immuable [article mdn] .

Puisque vous ne modifiez que les membres de la variable mais n'effectuez pas de réaffectation sur la liaison, la règle prefer-const d'es-lint vous avertit qu'une variable const déclarée pourrait être utilisée au lieu d'une variable déclarée.