Javascript 我如何循环遍历状态中类似的对象并将它们推入对象?
我的Javascript 我如何循环遍历状态中类似的对象并将它们推入对象?,javascript,reactjs,Javascript,Reactjs,我的对象中有几个变量。state对象: this.state = { draw_number: '', user_number_1: '', user_number_2: '', user_number_3: '', user_number_4: '', user_number_5: '', user_number_6: '', } 如何循环它们并将它们添加到以下对象中: results { num
对象中有几个变量。state
对象:
this.state = {
draw_number: '',
user_number_1: '',
user_number_2: '',
user_number_3: '',
user_number_4: '',
user_number_5: '',
user_number_6: '',
}
如何循环它们并将它们添加到以下对象中:
results {
numbers: [],
draws: x
}
这是我当前的解决方案:
this.state = {
draw_number: '',
user_number_1: '',
user_number_2: '',
user_number_3: '',
user_number_4: '',
user_number_5: '',
user_number_6: '',
}
}
submitHandler = () => {
let results = {};
for (let i=1; i<=6; i++) {
results = this.state['user_number_' + i];
}
console.log(results);
}
this.state={
图纸编号:'',
用户\u编号\u 1:“”,
用户编号\u 2:“”,
用户编号\u 3:“”,
用户编号\u 4:“”,
用户\u编号\u 5:“”,
用户\u编号\u 6:“”,
}
}
submitHandler=()=>{
让结果={};
对于(设i=1;i可以使用[spread运算符][。
通过这种方式,您可以从对象复制所有密钥(ECMAScript 2018中新增):
constmyfriend={name:'George',年龄:12}
const mySuperFriend={…myFriend,superpowers:true}
注
您不应该在react中直接改变state对象。
相反,您可以创建一个新对象并setState
it您可以从状态中提取draw_number
属性,并将其用作draws
,然后在状态中的其余属性上使用对象。键
,并将这些值用作数字
数组
submitHandler = () => {
let { draw_number: draws, ...rest } = this.state;
let results = {
numbers: Object.keys(rest).map(key => rest[key])
draws,
};
console.log(results);
}
你能更具体地回答你的问题吗?它应该与你自己的解决方案有什么不同?我想循环我的状态值,并将它们添加到results
对象中,该对象稍后将通过AJAX调用传递给服务器。你的问题是,你每次都在循环中覆盖结果,而不是附加/push/add/etc…一个解决方案是创建一个具有数字属性的对象让数字={number_1:'',等等..}
,在保存时,使用object.keys,可以将它们放入数组中。