Javascript 更新sessionStorage中对象中的值

Javascript 更新sessionStorage中对象中的值,javascript,object,key,session-storage,Javascript,Object,Key,Session Storage,我已将此对象存储在sessionstorage中: 0: {FromName: "FName", FromLastName: "", FromAddress: "F Street", FromCountry: "Portugal", FromCity: "FC",…} 1: {FromName: "FName", FromLastName: "", FromAddress: "F Street", FromCountry: "Portugal", FromCity: "FC",…} 2: {Fr

我已将此对象存储在sessionstorage中:

0: {FromName: "FName", FromLastName: "", FromAddress: "F Street", FromCountry: "Portugal", FromCity: "FC",…}
1: {FromName: "FName", FromLastName: "", FromAddress: "F Street", FromCountry: "Portugal", FromCity: "FC",…}
2: {FromName: "", FromLastName: "", FromAddress: "", FromCountry: "", FromCity: "", FromPostCode: "",…}
它显示购物车项目的列表

当我在购物车上时,我有一个按钮,使我能够在表单中显示值,并且它已经从会话存储中获取了正确的值

问题是,如何使用显示的表单和更新的对象更新值

这是从sessionstorage中的对象获取正确值的代码:

  e.preventDefault();

  var itemsInCart = JSON.parse(sessionStorage.getItem('productList'));
  var ID = $(this).data('id');

  for (var i = 0; i < itemsInCart.length; i++) {

    var itemsinCartID = itemsInCart[i].keyID;

    if (ID == itemsinCartID) {

    $('.product-image').attr('src', itemsInCart[i].Product);
    $('#message').val(itemsInCart[i].Message);

    // from inputs
    var fromName = $('#from-name-input').val(itemsInCart[i].FromName);
    var fromLastName = $('#from-last-name-input').val(itemsInCart[i].FromLastName);
    var fromAddress = $('#from-address-input').val(itemsInCart[i].FromAddress);
    var fromCountry = $('#from-country-input').val(itemsInCart[i].FromCountry);
    var fromCity = $('#from-city-input').val(itemsInCart[i].FromCity);
    var fromPostCode = $('#from-postalcode-input').val(itemsInCart[i].FromPostCode);
    var fromPhone = $('#from-phone-input').val(itemsInCart[i].FromPhone);

    // to inputs
     var toName = $('#to-name-input').val(itemsInCart[i].ToName);
     var toLastName = $('#to-last-name-input').val(itemsInCart[i].ToLastName);
     var toAddress = $('#to-address-input').val(itemsInCart[i].ToAddress);
     var toCountry = $('#to-country-input').val(itemsInCart[i].ToCountry);
     var toCity = $('#to-city-input').val(itemsInCart[i].ToCity);
     var toPostCode = $('#to-postalcode-input').val(itemsInCart[i].ToPostCode);
     var toPhone = $('#to-phone-input').val(itemsInCart[i].ToPhone);
    break;
    }
  }

});
e.preventDefault();
var itemsInCart=JSON.parse(sessionStorage.getItem('productList');
var ID=$(this.data('ID');
对于(变量i=0;i
这是填写上述代码的表格:


然后我想用点击表单中的“编辑消息”按钮来更新我在表单中更改的新值。

如果我理解正确。您希望使用表单中的新会话存储项更新会话存储项。对 我会考虑将代码更改为:

const tempObject = {
  FromName: $('#from-name-input').val(itemsInCart[i].FromName),
  FromLastName = $('#from-last-name-input').val(itemsInCart[i].FromLastName)
}
Object.assign(itemsInCart, tempObject)
sessionStorage.setItem('productList', JSON.strigify(itemsInCart));

此代码是填写表单的代码。然后,我想更改表单中的值,点击提交按钮并用新值更新旧值。“然后”是什么时候?我更新了我的问题,我想你现在可以理解了。它是用新值替换sessionstorage中的对象,但它正在擦除对象的其他条目<代码>0:{FromName:“FName”,FromLastName:,FromAddress:“F Street”,FromCountry:“葡萄牙”,FromCity:“FC”,…}
确定。因此,会话存储中有一个数组。要更新该数组的条目还是推送新条目?