我正在构建一个允许客户更改信息的页面,然后在接受之前将其传递给管理团队进行验证。我试图保持表单动态只传递客户更改的信息。我正在使用下面的函数来创建一个对象数组:
$('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);
});
但是这会输出索引然后输出完整的对象,我需要找到对象的键,然后在值已经存在的情况下更改它。
答案 0 :(得分:1)
变量myArray
是一个数组而不是一个对象,因此key
只是数组中对象的索引。
检查具有特定键的对象是否存在,
function getObjWithKey(myArray, key){
var retVal;
$.each(myArray, function(index, obj) {
if(key != undefined && obj[key]){
retVal = obj;
return false;
}
});
return retVal;
}