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' }

祝你好运!