项目中有时候会需要进行两个对象的比较,看他们的值是否完全一一直,这里有一个可以封装的方法,供大家参考
var arr = {
tiku: '测试题库',
leixing: '单选',
daan: 'A',
xuanxiang: '这是第一个选项~这是第二个选项~这是第三个选项~这是第四个选项~这是第五个选项'
}
var brr = {
tiku: '测试题库',
leixing: '单选',
daan: 'b',
xuanxiang: '这是第一个选项~这是第二个选项~这是第三个选项~这是第四个选项~这是第五个选项'
}
let crr = arr
// var crr = {
// tiku: '测试题库',
// leixing: '单选',
// daan: 'A',
// xuanxiang: '这是第一个选项~这是第二个选项~这是第三个选项~这是第四个选项~这是第五个选项'
// }
var drr = {
tiku: '测试题库',
leixing: '单选',
daan: 'A',
xuanxiang: '这是第一个选项~这是第二个选项~这是第三个选项~这是第四个选项~这是第五个选项'
}
// console.log(Object.is(arr, brr))
// console.log(Object.is(arr, crr))
// 这个方法不能判定,只能自己封装方法来测试
// 对比两个对象的值是否完全相等 返回值 true/false
function isObjectValueEqual(a, b) {
//取对象a和b的属性名
var aProps = Object.getOwnPropertyNames(a);
var bProps = Object.getOwnPropertyNames(b);
//判断属性名的length是否一致
if (aProps.length != bProps.length) {
return false;
}
//循环取出属性名,再判断属性值是否一致
for (var i = 0; i < aProps.length; i++) {
var propName = aProps[i];
if (a[propName] !== b[propName]) {
return false;
}
}
return true;
}
console.log(isObjectValueEqual(arr, brr))
console.log(isObjectValueEqual(arr, drr))
// 这里就可以得到想要的结果,目前想要比较,只能自己进行判断,自己封装方法
</script>
object.is这个方法不能判断两个完全不相干的对象的判断