Reactjs 替换对象中的值

Reactjs 替换对象中的值,reactjs,object,foreach,Reactjs,Object,Foreach,我希望根据键替换数据中的一些值,我有以下对象: const data = { data: { config: { bioObject: { dataBioOne: 1, dataBioTwo: "B", dataBioThree: "A", dataBioFour: 2, dataBioFive: 2, dataBioSix: 3, dataBioSeven:

我希望根据键替换数据中的一些值,我有以下对象:

const data = {
  data: {
    config: {
      bioObject: {
        dataBioOne: 1,
        dataBioTwo: "B",
        dataBioThree: "A",
        dataBioFour: 2,
        dataBioFive: 2,
        dataBioSix: 3,
        dataBioSeven: 1
      },
      pinObject: {
        dataPinOne: 5,
        dataPinTwo: "B0",
        dataPinThree: "A0",
        dataPinFour: 6
      },
      appletRegister: [
        {
          aid: "A",
          filterApplet: null,
          bioApplet: false,
          pinApplet: false,
          defaultApplet: true
        },
        {
            aid: "A",
            filterApplet: null,
            bioApplet: false,
            pinApplet: false,
            defaultApplet: true
          },
      ]
    },
    initialization: {
      defaultPin: "1111"
    }
  }
};
我在上面的对象中还有另外两个对象-
bioObject
pinObject
属性。我希望通过对象循环并用新元素替换这两个键及其值

我的函数如下所示:

 handleSChange = (bio, pin) => {
    let dataBio = bio;
    let dataPin = pin;
    let profile = this.state.data;
    console.log(Object.keys(profile.config));

    let obj;
    obj = Object.keys(profile.config).forEach((el) => {
      if (el == "bioObject") {
        el.replace(dataBio)
      }
      if (el == "pinObject") {
        el.replace(dataPin)
      }
    })
    console.log(obj);   
  }

但在我看来,我只替换键,而不是它的值。若我更改了值的键,那个么我不能循环通过键,所以不能替换这个特定的数据。有人知道如何替换这两个地方的数据吗?

有几种方法。下面您将找到一种方法。另一种是使用
Object.assign()
或ES6对象扩展语法<代码>对象

const数据={
配置:{
生物对象:{
数据一:1,
“B”,
数据三:“A”,
数据库四:2,
数据生物学5:2,
dataBioSix:3,
数据均衡:1
},
皮诺对象:{
dataPinOne:5,
dataPinTwo:“B0”,
数据三:“A0”,
数据四:6
},
appletRegister:[
{
援助:“A”,
filterApplet:null,
生物应用程序:错误,
pinApplet:false,
defaultApplet:true
},
{
援助:“A”,
filterApplet:null,
生物应用程序:错误,
pinApplet:false,
defaultApplet:true
},
]
},
初始化:{
defaultPin:“1111”
}
};
HandleChange=()=>{
让profile=数据;
让obj;
obj=Object.keys(profile.config).forEach((el)=>{
如果(el==“生物对象”){
profile.config[el]={
/*如果要覆盖现有对象,请将新属性放在此处*/
newProp:“newProp”
};
}
如果(el==“pinObject”){
profile.config[el]={
/*如果要覆盖现有对象,请将新属性放在此处*/
newProp:“newProp”
};
}
})   
}
handleSChange();

控制台日志(数据)由于您使用的似乎是带有状态的React类组件,因此以下操作应该有效:

this.setState({
    data: {
        config: {
            ...profile,
            bioObject: bio,
            pinObject: pin
        }
    }
});