我有一个我想要比较的两个数组的函数。两个数组都包含相同的数据结构,但可以具有不同的值,因为它表示HTML表单的ID和值。但是我只想检查具有ID/Key
“textarea'1”,“textarea2”和“textarea3”的对象,并检查它们的值是否与newVals和oldVals不同。
我如何存档?
function CheckTextChange() {
var formData = $.parseJSON(data);
var dbData = $.parseJSON(oldData);
var newVals = formData[0].texts[0];
var oldVals = dbData[0].texts[0];
}
答案 0 :(得分:1)
这是一个compareKeys
函数,它接受一组键名和两个对象,并返回两个对象中具有不同值的键数组:
function compareKeys( keynames, objA, objB ){
var diffs = keynames.filter(function( key ){
if( key in objA && key in objB ){
return objA[ key ] != objB[ key ];
}
return true; // mismatch if key doesn't exist in any object
});
return diffs;
}
function CheckTextChange() {
var formData = $.parseJSON(data);
var dbData = $.parseJSON(oldData);
var diffs = compareKeys( ["textarea1", "textarea2" ], formData, dbData );
if( diffs.length > 0 ){
console.log( "Keys %s don't match", diffs.join() );
}
}