Javascript:如何在已创建的 Javascript 对象中推送 key:pair 值
Javascript: How to push key:pair values in Javascript Object which is already created
我的问题解释:
我有一个变量类型 = 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(类型 FormData)中的值推送到新对象中。这是片段
_CheckOutData.forEach((key,value)=>{
let Value=key;
let Key=value;
let TemporaryCart={
[Key]:Value
}
this._CartCheckOutData.push(TemporaryCart);
})
所以我成功获取了所有值并将它们保存到 TemporaryCart(类型对象)中。但问题是,如果有 5 个值,它会在 Array.But 中创建 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);
一个 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;
};
我会尝试这样设置对象的键:
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' }
祝你好运!
我的问题解释:
我有一个变量类型 = 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(类型 FormData)中的值推送到新对象中。这是片段
_CheckOutData.forEach((key,value)=>{
let Value=key;
let Key=value;
let TemporaryCart={
[Key]:Value
}
this._CartCheckOutData.push(TemporaryCart);
})
所以我成功获取了所有值并将它们保存到 TemporaryCart(类型对象)中。但问题是,如果有 5 个值,它会在 Array.But 中创建 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);
一个 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;
};
我会尝试这样设置对象的键:
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' }
祝你好运!