【问题标题】:Get first object from array of objects in react [duplicate]从反应中的对象数组中获取第一个对象[重复]
【发布时间】:2018-08-23 16:19:17
【问题描述】:

我正在尝试从对象数组中获取第一个对象。获取componentDidMount中的数据并返回:

var array1 = [
    {
      Id: 1, 
      Categories: 200 
    },
    {
      Id: 2, 
      Categories: 100 
    }
]

(实际数据要复杂得多,但格式相同) 我想要的是这样的:

array2 = [
    Id: 1, 
    Categories: 200
]

我正在使用

var iterator1 = array1.entries();
let array2 = iterator1.next().value

当我console.log(array2)它显示数组数据(所有键和值都在数组的索引1中),然后当我console.log(array2[1].Id) 它在类组件的渲染方法内显示未定义。我在其他 IDE 中使用相同的代码,但不使用对代码工作的反应。有人可以向我解释一下吗?感谢任何帮助。

编辑: 最后我发现我问错了问题。我无法获取数据,因为我将减速器中的数据声明为对象而不是数组。我用 larz 标记了答案,因为您只需要输入索引 0 即可从对象数组中获取第一个对象。

【问题讨论】:

  • 数组从 0 开始。试试array2[0].id
  • 这将给出未定义,即使在其他 IDE 中,因为所有键和值都在索引 1 中,索引 0 在 console.log 中显示 0
  • 你在说什么/
  • 没有。 array2 保存 [0, {Id:1, Categories: 200}]。因此,OP 做得对。
  • @andromad 你能解释一下为什么你不使用更简单的方法:array1[0] 来获取array1 的第一个元素。

标签: reactjs


【解决方案1】:

使用[0] 获取数组中的第一项,这将在您的情况下返回一个对象。然后就可以调用.Id获取id了。

var array1 = [
    {
      Id: 1, 
      Categories: 200 
    },
    {
      Id: 2, 
      Categories: 100 
    }
];

var first = array1[0];

console.log(first, first.Id);

【讨论】:

  • 在 Javascript 中,数组中的第一项总是 0,而不是 1。它对某些事情可能很有用,但如果你是第一次开始使用该语言,它也可能会有点烦人不习惯(我来自Lua。)
  • 没有。 array2 持有[0, {Id:1, Categories: 200}]。因此,OP 做得对。
  • @BhojendraRauniyar 好吧,我没有提到任何关于 array2 的事情,所以我不确定你为什么发表评论。
  • 试试OP代码,你就明白了。
  • @BhojendraRauniyar 然后评论 OP 的代码,而不是我的。我没有array2,因为那是不必要的步骤。
猜你喜欢
  • 2021-03-23
  • 2023-03-20
  • 2020-02-07
  • 1970-01-01
  • 2019-11-26
  • 2019-12-14
  • 2017-12-25
  • 2019-07-25
  • 2020-11-24
相关资源
最近更新 更多