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

更改键';使用javascript的对象数组中的s值?,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我正在构建一个页面,允许客户更改信息,然后在接受之前将其传递给管理团队进行验证。我试图保持表单的动态性,只传递客户更改的信息。我正在使用下面的函数创建对象数组: $('input, textarea, select').change(function(){ var key = $(this).attr('name'); var obj = {}; obj[key] = $(this).val(); myArray.push(obj); }); 但今天我注意到,当

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

$('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
是数组而不是对象,因此
只是数组中对象的索引

要检查具有特定键的对象是否存在

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

推之前,您必须检查myArray中是否存在该对象。你可以使用Lodash的方法findIndexI发布了一个答案,但我认为我实际上不理解你的问题。你能给出一个你想要你的对象数组是什么样子的例子吗?谢谢你,这实际上回答了我的问题,但我意识到我这样做是毫无意义的。我创建了一个数组,然后用对象填充它,然后将它转换成一个对象,然后再将它传递给PHP。从那以后,我就开始使用一个对象来解决我的问题。我感谢大家的帮助。