web-dev-qa-db-ja.com

2つの制限されていない構文違反の間でキャッチ

これは私の元のコードです:

const buildTableContent = (settings) => {
  const entries = [];
  for (const key in settings) {
    for (const subkey in env[key]) {

settingsは基本的に辞書の辞書です

  {  
    'env': {'name': 'prod'}, 
    'sass: {'app-id': 'a123445', 'app-key': 'xxyyzz'}
  }

次のAirBnbスタイルガイドエラーがトリガーされました。

35:3エラーfor..inループは、プロトタイプチェーン全体で繰り返されます。 Object。{keys、values、entries}を使用して、結果の配列no-restricted-syntaxを反復します

だから私はコードを

const buildTableContent = (settings) => {
  const entries = [];
  for (const key of Object.keys(settings)) {
    for (const subkey of Object.keys(env[key])) {

提案されたように。

lintを実行すると、次のようになります。

35:3エラーイテレーター/ジェネレーターにはリジェネレーターランタイムが必要です。これとは別に、配列の繰り返しを制限しない構文を優先して、ループを回避する必要があります

だから私は彼らがいくつかの糸くずの出たスタイルに違反しているように私に見えます。

この問題を解決するにはどうすればよいですか?

13
Anthony Kong

使いたい

Object.keys(settings).forEach(key => {
  Object.keys(env[key]).forEach(subkey => {

または潜在的にObject.entriesまたはObject.values実際にキーが必要かどうかによって異なります。

12
loganfsmyth