【问题标题】:How to loop through immutable and push it to array Javascript如何遍历不可变并将其推送到数组Javascript
【发布时间】:2021-02-03 06:02:03
【问题描述】:

我的表单字段值位于不可变对象中。
我使用getIn 不可变函数来访问它。

例如,如果我必须访问字段,我使用const users = formFields.getIn(['0', value])
现在,我有一个变量

用户 = 4`

这意味着,我需要从中获取用户年龄的 4 个不可变字段。

例如

  • 第一个用户年龄将存储在formFields.getIn(['1', value])
  • 第二个用户年龄将存储在formFields.getIn(['2', value])
  • 等等

如何根据用户变量循环遍历用户年龄列表?
我尝试过这样的事情:

const userAgeList = [];
if (users >0) {
  userAgeList.push(formFields.getIn([[i], value]));
}

使用上面的代码formFields.getIn([[i], value]),我得到未定义,因为该值实际上不在此之上。它在formFields.getIn(['i', value])

如何将循环变量 i 作为字符串传递,以便获取字段值?

【问题讨论】:

  • [i] 这将创建一个具有一个值的数组,即i 的值。这是你所期待的吗?
  • 您是否尝试过使用模板字符串?像`${i}`?
  • @evolutionxbox- 如果我只使用 i,它将是数字。我想用'我'
  • @ashwinprabhu,你试过了吗,formFields.getIn([`${i}`, value]) ??
  • formFields.getIn([i.toString(), value])?

标签: javascript arrays loops iteration immutable.js


【解决方案1】:

如果您拥有的是包含Map 对象的List,则可以使用map 循环所有值:

const userAgeList = formFields
  .map(field -> field.get('value'))
  .toArray()

这将为您提供所需值的数组。
如果您只想获取特定的i将其转换为数字,然后您可以以这种方式组合skiptake

const userAgeList = formFields
  .skip(i)
  .take(1)
  .map(field -> field.get('value'))
  .toArray()

这将在i 位置返回一个单元素数组。

【讨论】:

    猜你喜欢
    • 2018-02-18
    • 2022-01-10
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2021-10-04
    • 2019-01-19
    • 2013-04-06
    • 2019-05-21
    相关资源
    最近更新 更多