更改键';使用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。从那以后,我就开始使用一个对象来解决我的问题。我感谢大家的帮助。