在reactjs/javascript中将对象插入到另一个对象数组中

在reactjs/javascript中将对象插入到另一个对象数组中,reactjs,immutability,Reactjs,Immutability,Hi试图在我的reactJs应用程序上实现一个集合访问计划 基本上,从主管在SOD(一天开始)时间的计划开始,为现场收集官员安排一次收集访问 初始数据访问计划作为以下对象数组从API表单接收: intialVisitPLanData:[{ id:1, custName:'Mr. John', address:'St. Lorem ipsum dolor sit.', fieldcoll:'Office

Hi试图在我的reactJs应用程序上实现一个集合访问计划

基本上,从主管在SOD(一天开始)时间的计划开始,为现场收集官员安排一次收集访问

初始数据访问计划作为以下对象数组从API表单接收:

intialVisitPLanData:[{
            id:1,
            custName:'Mr. John',
            address:'St. Lorem ipsum dolor sit.',
            fieldcoll:'Officer 01',
            isVisited:null,
            isWarnLetter1:null,
            isWarnLetter1:null,
            isWarnLetter1:null,
            isWarnLetter1:null,
        },
        {
            id:2,
            custName:'Mr. Jack',
            address:'St. Lorem ipsum dolor sit.',
            fieldcoll:'Officer 02',
            isVisited:null,
            isWarnLetter1:null,
            isWarnLetter1:null,
            isWarnLetter1:null,
            isWarnLetter1:null,
        },
        ... more objects here
    ]
我已经成功地将这些数据呈现为表行,并在每行上放置复选框。因此,主管可以根据选中的复选框选择他想要的客户

问题是如何基于这些选定行创建新的visitPlan对象数组,并保留初始对象结构(对象键属性)(已选中的initialVisitPlanData)

我不知道达到这个要求的方法


提前感谢

这里有一个快速演示:

MyApp类扩展了React.Component{ 构造函数(){ 超级(); 此.state={ selectedItems:new Set(),//我们已经“检查”了哪些计划。 intialVisitPLanData:[{ id:1, 客户姓名:“约翰先生”, 地址:“圣洛勒姆·伊普苏姆·多洛尔·西特”, fieldcoll:“警官01”, isvisted:null, isWarnLetter1:null, isWarnLetter1:null, isWarnLetter1:null, isWarnLetter1:null, }, { id:2, 客户姓名:“杰克先生”, 地址:“圣洛勒姆·伊普苏姆·多洛尔·西特”, fieldcoll:“警官02”, isvisted:null, isWarnLetter1:null, isWarnLetter1:null, isWarnLetter1:null, isWarnLetter1:null, } ] }; } toggleItem=(id)=>{ 让tempSet=newset(this.state.selectedItems); 如果(!tempSet.delete(id)){//请尝试删除一个项。如果失败,则该项以前不存在。。。 tempSet.add(id);/…所以我们添加它。 } this.setState({selectedItems:tempSet}); } 创建=()=>{ 设arr=[]; this.state.selectedItems.forEach((id)=>{//对于每个“选中”项。。。 让数据=this.state.intialVisitPLanData.find((项)=>{ 如果(id==item.id)返回true;//…查找并返回id等于所选值的initialVisitPlanData 返回false; }); arr.push(Object.assign({},data));//将其推送到新数组中 }); 控制台日志(arr); } render(){ 返回( {this.state.intialVisitPLanData.map(项=>{ 返回( {item.custName} )}) } 创造 ); } } ReactDOM.render(,document.getElementById(“app”)


谢谢@chris。还有一个问题,chris,如果我想更新objectt中的一些objec。例如:[{“id”:2,…“fieldcoll”:“军官02”,…}]到:[{“id”:2,…“fieldcoll”:“军官04”,…}]@DennyRachmadi,听起来像是一个新问题,所以请发布一个新问题:)在这里的评论中给我一个通知,并链接到帖子,然后我来看看。。。
example :
object structure ready to inserted to new object
{id:null,custname:null,etc} 

* initial data :
this.state = {
   visitPlan:[]
}