从我的地图函数中获取类型错误

Getting a type error from my map function

我正在尝试创建一个仅包含来自 state.words 对象(下方)的 id 的数组

我需要的输出

['word-1','word-2','word-3','word-4','word-5','word-6','word-7']

我的起始数据结构如下所示

words: {
    'word-1': { id: 'word-1', content: 'Jimmy Yukka' ,url:'www.paulayling.me'},
    'word-2': { id: 'word-2', content: 'INXS' ,url:'www.paulayling.me'},
    'word-3': { id: 'word-3', content: 'Up North' ,url:'www.paulayling.me'},
    'word-4': { id: 'word-4', content: 'Prince' ,url:'www.paulayling.me'},
    'word-5': { id: 'word-5', content: 'Magic Moose' ,url:'www.paulayling.me'},
    'word-6': { id: 'word-6', content: 'Salt n Pepper' ,url:'www.paulayling.me'},
    'word-7': { id: 'word-7', content: 'Maddonna' ,url:'www.paulayling.me'}
  }

我遇到的问题是因为它是一个基于对象数组的方法不会给我我需要的结果,例如下面的方法不起作用 - 但我需要一个对象的对象的等价物 我的功能如下


  addNewWord() {
    var currentOrder = this.state.words.map(function (book) {
      return book.id
    })

    console.log('words stuff', currentOrder)
  }

我收到错误

TypeError: this.state.words.map is not a function

如果相关,则从 componentDidMount() 函数调用该函数

map 只能用于数组。如果你想在你的 words 对象中列出键,你可以这样做:

const result = Object.keys(this.state.words);

这将return你需要的输出