首页 > 解决方案 > 如何在 React Native 中的其他对象数组内的对象数组中添加值?

问题描述

我是 React native 的新手,我想在另一个对象数组中的对象数组中添加值。我有这样的数据:

dataAttribute: [
        {
          id: 1,
          title: 'A',
          data: [
            { id: '1', name: 'First Name', type: 'text' },
            { id: '2', name: 'Last Name', type: 'text' },
          ],
        },
        {
          id: 2,
          title: 'B',
          data: [
            { id: '1', name: 'Twitter', type: 'text' },
            { id: '2', name: 'Twitter follower', type: 'number' },
          ],
        }
      ]

我想在子数组中添加参数'statusSelected == true',如下所示:

dataAttribute: [
        {
          id: 1,
          title: 'A',
          data: [
            { id: '1', name: 'First Name', type: 'text', statusSelected: true},
            { id: '2', name: 'Last Name', type: 'text' },
          ],
        },
        {
          id: 2,
          title: 'B',
          data: [
            { id: '1', name: 'Twitter', type: 'text' },
            { id: '2', name: 'Twitter follower', type: 'number' },
          ],
        }
      ]

标签: reactjsreact-native

解决方案


试试这个

dataAttribute = [
    {
      id: 1,
      title: 'A',
      data: [
        { id: '1', name: 'First Name', type: 'text' },
        { id: '2', name: 'Last Name', type: 'text' },
      ],
    },
    {
      id: 2,
      title: 'B',
      data: [
        { id: '1', name: 'Twitter', type: 'text' },
        { id: '2', name: 'Twitter follower', type: 'number' },
      ],
    }
  ]

const changeMe = (dataAttribute, attrId, dataId) => dataAttribute.map(x => x.id === attrId ? {...x, data: x.data.map(y => y.id === dataId ? {...y, statusSelected: true} : y)} : x)

console.log(changeMe(dataAttribute, 1, "1"))

输出:

[ { "id": 1, "title": "A", "data": [ { "id": "1", "name": "First Name", "type": "text", "statusSelected": true }, { "id": "2", "name": "Last Name", "type": "text" } ] }, { "id": 2, "title": "B", "data": [ { "id": "1", "name": "Twitter", "type": "text" }, { "id": "2", "name": "Twitter follower", "type": "number" } ] }

附加JsFiddle以获得结果。


推荐阅读