更改键'使用javascript的对象数组中的s值

Change key's value in array of objects with javascript?

本文关键字:对象 数组 javascript 使用      更新时间:2023-09-26

我正在构建一个页面,允许客户更改信息,然后将信息传递给管理团队进行验证,然后再接受。我试图保持表单的动态,只传递客户更改的信息。我正在使用下面的函数来创建一个对象数组:

$('input, textarea, select').change(function(){
    var key = $(this).attr('name');
    var obj = {};
    obj[key] = $(this).val();
    myArray.push(obj);
});

这是正确的,但今天我注意到,当多次更改字段时,它会创建多个具有相同名称的对象。

我的问题是,如果数组中存在动态键,我如何找到它并更改它的值?

我尝试使用:

$.each(myArray, function( key, value ) {
    console.log(key, value);
});

但这会输出索引,然后输出完整的对象,我需要找到对象的键,然后更改值(如果它已经存在)。

变量myArray是一个数组,而不是对象,因此key只是数组中对象的索引。

要检查具有特定密钥的对象是否存在,

function getObjWithKey(myArray, key){
   var retVal;
   $.each(myArray, function(index, obj) {
       if(key != undefined && obj[key]){
           retVal = obj;
           return false;
       }
   });
   return retVal;        
}