javascript - 将对象数组和字符串状态合并到新对象

标签 javascript reactjs

我有一个像这样的对象数组:

(2) [{…}, {…}]
0: {type: "", label: "first name", title: "", name: "sa", uniquekey: "", …}
1: {type: "text", label: "first name", title: "", name: "asdasd", uniquekey: "", …}
lastIndex: (...)
lastItem: (...)
length: 2
__proto__: Array(0)

此数据是从父组件接收的。

另外,在我的 react 状态下,

this.state = {
  data: this.props.newdata,
  formname: '',
  finalData: {}
}

我想要实现的是,当我单击子组件中的 onChange() 字段处理程序时,它会为状态 formname 设置一个值。单击表单 onSubmit() 处理程序,我想将 formnamedata 状态合并到状态 finalData 中物体的形式。

我尝试像这样使用map(),但感到困惑:

onSubmit = (e) => {   
      e.preventDefault();
      console.log('TEST FORM', this.state.data);
      console.log('TEST FORM NAME', this.state.formname);

      // console.log(this.setState({
      //   newform: [...this.state.newform, this.state.formname]
      // }), 'added form name');

      var finalData = this.state.data.map((item, i) => {
        return {
          form: item
        };
      });
      console.log(formField);

      this.setState({ finalData:finalData })
} 

我想看起来像这样:

{
   0:{
     formname1:'',
     [ 0: {a:'', b:''},
       1: {a:'', b:''},
     ]
   },
   1:{
     formname2:'',
     [ 0: {a:'', b:''},
       1: {a:'', b:''},
     ]
   },
.......
}

请大家帮忙

最佳答案

const finalData = {...this.state.data, formname: this.state.formname};

const finalData = {[this.state.formname]: this.state.data};

关于javascript - 将对象数组和字符串状态合并到新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58857507/

相关文章:

javascript - 无法在 React 应用程序中禁用指针事件

javascript - 样式组件中的响应式数组

reactjs - 使用 react 路由器在路线上 react 设置状态/属性

javascript - 如何使用 javascript 触发链接上的事件处理程序

javascript - Android Webview onLoad 返回错误的高度

javascript - 鉴于主干js,单击按钮不起作用

javascript - 从 Controller 访问模型。 Angular .js

javascript - Jquery过滤器反向循环,并break

javascript - 在 React 中运行 useEffect 后,状态数组未更新

javascript - 在 React 中调用 API - item.map 不是函数