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
}
}
});