私のプロジェクトの1つで、JavaScriptに対してeslint
を実行しています。今日では、私に言った:`query [name_value [0]] = name_value [1];で配列destruturingとは何ですか?
error: Use array destructuring
問題のコードは次のようになります。
query[name_value[0]] = name_value[1];
私はこのようになります別のステートメントがあります。
query[name_value[0]] = true;
をそして、私はエラーを取得しませんそれで、の崩壊が右側に起こっているように見えます。
array or object desstructuringに関するドキュメントを確認したところ、が間違っているとわかりません。です。
コンプリート機能、念のため:
var query = null;
function get_query_string(name)
{
var url,
location_query,
query_array,
idx,
name_value;
if(null === query)
{
url = String(window.location.href);
location_query = url.split("?", 2);
query_array = 2 == location_query.length
? location_query[1].split("&")
: [];
query = {};
for(idx in query_array)
{
if(Object.prototype.hasOwnProperty.call(query_array, idx))
{
name_value = query_array[idx].split("=", 2);
if(2 === name_value.length)
{
query[name_value[0]] = name_value[1]; // offensive line
}
else
{
query[name_value[0]] = true;
}
}
}
}
return query[name];
}
更新
私は今、(少なくともFirefoxで)それが正しく動作していて、私はちょうどにquery
のタイプを変更オブジェクトとトップのテストも変更する必要がありました。それは、破壊についての誤りが起こるという事実を変えるものではありません。
を「エラー」を削除(ただし、エラーが厳しいようだ!)すべきであると考えています –
@JaromandaX完全な機能を追加しました。私は、この問題を説明するために追加のコード行が必要かどうかはわかりませんが、とにかくここにあります。 –
それはeslintが '' [key、value] = name_value = query_array [idx] .split( "="、2); 'を書くことを期待しているのですが、' 'query [key] = value;' '奇数 –