reactjs - 如何在 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' },
],
}
]
解决方案
试试这个
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以获得结果。
推荐阅读
- c# - 如何从线程中执行的委托返回结果?
- java - 在 Java 应用程序中处理来自 cassandra 的空值
- html - 如何更改导航栏颜色?
- google-cloud-platform - 将 gcloud 调用的值分配给 GitHub 操作变量
- reactjs - 使用 Intersection Observer API 进行无限滚动 _ 无限渲染并显示所有信息
- c# - 无法使用反斜杠访问 Newtonsoft.Json.Linq.JValue 上的子值
- size - Facebook 上允许的最大视频大小是多少?
- jsp - 使用 jsp-servlet 获取复选框值的问题
- docker - Docker 构建过程无法消耗分配的全部 RAM
- css - 模糊文本颜色