Javascript:如何按键:在已经创建的Javascript对象中对值



我的问题解释:

我有一个类型为=new FormData((的变量

例如,它有一些密钥对值。

const _CheckOutData = new FormData(); // Creating FormData object to send mulitpart data
_CheckOutData.append('Name', this._CheckOutForm.get('name').value);//Appending values to the 
_CheckOutForm varibale from FormGroup
_CheckOutData.append('Street', this._CheckOutForm.get('street').value);//Appending values to the 
_CheckOutForm varibale from FormGroup
_CheckOutData.append('City', this._CheckOutForm.get('city').value);/

我想将这些值保存在localStorages中。当我直接将_ChechOutData保存到本地存储时,它是空的。此函数的代码段是

SaveFormDataToLocalStorage(_CheckOutData){
localStorage.setItem('_CheckOutData',JSON.stringify(_CheckOutData));
}

所以清空本地存储。我尝试了一种不同的方法,它确实有效,但由于我的问题是,我想将_CheckOutData(Type FormData(中的值推送到新对象中。这是的片段

_CheckOutData.forEach((key,value)=>{
let Value=key;
let Key=value;
let TemporaryCart={
[Key]:Value
}
this._CartCheckOutData.push(TemporaryCart);
})

因此,我成功地获得了所有和值,并将它们保存到TemporaryCart(键入Object(中。但问题是,如果有5个值,它会在数组中创建5个对象。但我想创建一个有5个数值的对象。

我的实际结果:

[{Name: "Fazi"}, {Street: "10570 S De Anza Blvd, Cupertino, CA 95014, United States"}]

但是我想要

[
{
Name:"Fazi",
Street:"xyz 123",
.
.
.
.
And So One
}
]

请帮助我的社区:问候Abdul Rehman

嗨,你可以尝试这个来更改对象中的表单数据

formData.forEach(function(value, key){
object[key] = value;
});
var json = JSON.stringify(object);

我会尝试这样设置对象的键:

some_list = []
some_object = {}
some_object['new_key_1']=123
some_object['new_key_2']='abc'
some_object
some_list.push(some_object)

会给你

> some_object
{ new_key_1: 123, new_key_2: 'abc' }
> some_list
[ { new_key_1: 123, new_key_2: 'abc' } ]

因为你想把一个对象复制到另一个对象中,你也可以尝试:

> target_object = {...some_object, and_another_key:'123.123'}
{ new_key_1: 123, new_key_2: 'abc', and_another_key: '123.123' }

祝你好运!

FormData对象看起来更像是数组数组,而不是实际对象。这就是为什么一个FormData对象可以有更多具有相同键的条目。

因此,与其尝试将FormData转换为JSON对象,不如尝试将其转换为数组。

const formDataToJSON = formData => {
const entriesArray = [...formData];
return JSON.stringify(entriesArray);
}

这将首先将FormData对象转换为如下的数组(在JSON步骤之前(:

[
["Name", "Fazi"],
["Street", "xyz 123"],
]

这种格式将保持FormData中的所有值不变,因为您可能有多个具有相同名称的键。

也可以颠倒这个过程。

const JSONtoFormData = json => {
const formData = new FormData();
const entriesArray = JSON.parse(json);
for (const [name, value] of entriesArray) {
formData.append(name, value);
}
return formData;
};

最新更新