数据处理的一个问题
两个对象 对比 返回属性值不相同的属性
var obj = {
name:'ss',
age:12,
arr:[1,2]
}
var obj1={
name:'aa',
age:'12',
arr:[0,1]
}
obj 和 obj1对比 name属性值不相同
age 的值为 12 和 ’12‘ 用 == 判断 也是相同的 不用处理
数组 的话 [1,2] 相同 ['1','2'] | [1,2]和[0,1]不相同 所以返回 [name,arr]这两个属性
大佬 来啊
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个问题首先需要确定是否对象中只有这3个属性,还是可能有更多的属性?
其次是属性的值范围是否如例子所示,比如name最终是string,age是可以数字化的,arr是数组,且其中的元素是可以数字化的?
如果能确认,则相应处理比较简单,否则就很麻烦。当然,即使这样,在比较arr属性时还需要细化规则,比如 [1,2] 相同 ['1','2'],是否 [1,2] 相同 ['2','1'],即子元素位置关系是否影响结果?
根据下面的讨论,其实关键是2个
因为值主要涉及 3种情况,数组、数字和字符串,所以如果有一个比较函数能直接比较三者则可以很快得出。