如何将其重构为ES6?

时间:2016-12-06 10:43:27

标签: javascript loops internationalization ecmascript-6 eslint

所以我有一个for / in循环将一个对象转换为一个对象数组,用于React typeahead组件:

const languageOptions = []
for (const language in i18n.store.data[i18n.language].translation.languages) {
  languageOptions.push({
    id: language,
    label: i18n.store.data[i18n.language].translation.languages[language],
  })
}

但是,我收到了一个eslint错误:Using 'ForInStatement' is not allowed (no-restricted-syntax)

我现在希望如何进行此类转换?

1 个答案:

答案 0 :(得分:1)

Object.keysObject.entries

const languageOptions =
  Object.entries(i18n.store.data[i18n.language].translation.languages)
    .map(([id, label]) => ({id, label}))

假设您不需要原型链更远的可枚举属性。如果这样做,请关闭ESLint规则。 =)