因此,我try 从任意值切换selected的值.值是相反的.这是一个复选框.Idk可能睡眠不足,但我一直在努力解决这个问题.这是数据 struct .它是JSON,具有具有对象的array.

[
    [
       {
            "module": "string",
            "selected": false,
            "name": "title",
            "points": [{
                    "category": "category1",
                    "description": "desc1",
                    "provided": "provided1"
                },
                {
                    "category": "category1",
                    "description": "desc", 
                    "provided": "something"
                }
            ]
        },
        {
            "module": "string",
            "selected": false,
            "name": "title_one",
            "points": [{
                    "category": "category1",
                    "description": "desc1",
                    "provided": "provided1"
                },
                {
                    "category": "category1",
                    "description": "desc",
                    "provided": "something"
                }
            ]
        },
    ],
    [...],
    [...]
]

我最近的try ,但格式错误

//checked value is the information of the checkbox and valuesArr is the entire array
function toggleCheck(checkedValue, valuesArr) {
    return {
        value: valuesArr.map((module, i, ...values) => {
            return [
                ...values,
                (values[i] = module.map((x, j, ...transObj) => ({
                    ...transObj,
                    selected: x.name === checkedValue.name ?
                        !values[i][j].selected :
                        values[i][j].selected,
                }))),
            ];
        }),
    };
}

^^^上面的 struct 使它成为

[
    [
        [   {},
            {},
            {}
        ],
        [...],
        [...]
    ]
]

我需要

[
    [   {},
        {},
        {}
    ],
    [...],
    [...]
]

推荐答案

在不了解代码的所有要求的情况下,我只关注如何删除不需要的数组嵌套.使用此解决方案,您还可以简化代码.下一步是决定是否要复制值/要复制数组的深度,以及切换逻辑是否确实是您想要的.

function toggleCheck(checkedValue, valuesArr) {

  let midArray = [...valuesArr];

  return midArray.map( (module) => {
    return module.map( (values)=>{
      return {
        ...values,
        selected: values.name === checkedValue.name ? !values.selected : values.selected
      }
    })
  }
  )
}

Javascript相关问答推荐

原型链中的同一财产怎么会有不同的价值?

为什么新的Promises会在不需要的情况下被用来等待?

IOS(React Native)中未找到模块SquareReaderSDK

未使用Outlet渲染子组件

将音频记录从js发送到activx-web服务器以保存到磁盘

导入图像与内联包含它们NextJS

如何在react + react路由域名中使用DeliverBrowserRouter?

如何修复循环HTML元素附加函数中的问题?

使用JavaScript在ionic Web应用程序中更新.pane和.view的背景 colored颜色

如何在Javascript中的控制台上以一行形式打印循环的结果

为什么ngModel不能在最后一个版本的Angular 17上工作?'

Promise Chain中的第二个useState不更新

当使用';字母而不是与';var#39;一起使用时,访问窗口为什么返回未定义的?

JavaScript是否有多个`unfined`?

元素字符串长度html

JavaScript不重定向配置的PATH

钛中的onClick事件需要在两次点击之间等待几秒钟

按下单键和多值

使用jQuery find()获取元素的属性

有没有办法更改Chart.js 3.x.x中主要刻度的字体?