我正在构建一个允许客户更改信息的页面,然后将其传递给管理团队进行验证,然后再接受。我试图保持表单动态,仅传递客户更改的信息。我使用下面的函数来创建对象数组:
$('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;
}
关于javascript - 使用javascript更改对象数组中的键值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37122966/