本文实例讲述了JS判断两个数组或对象是否相同的方法。分享给大家供大家参考,具体如下:
<强> JS判断两个数组是否相同强>
要判断两个数组是否相同,首先要把数组进行排序,然后转换成字符串进行比较。
JSON.stringify ([1, 2, 3] .sort ())===JSON.stringify ((3,2,1) .sort ());//正确的 >之前或者
(1、2、3).sort () .toString ()===(3,2,1) .sort () .toString ();//正确的 >之前经验证,上述方法对复杂数组结构不适用。
<强> JS判断两个对象是否相同强>
这是网上某大神封装对比对象是否相同的功能。
让cmp=(x, y)=比;{//如果x和y是null或未定义的和完全一样 if (x===y) { 返回true; }//如果不严格相等,它们都需要对象 如果(!(x instanceof对象)| | !(y instanceof对象)){ 返回错误; }//他们必须有相同的原型链,最接近我们所能做的就是//构造函数测试。 如果(x)。构造函数!==y。构造函数){ 返回错误; } 在x p (var) {//使用x继承的属性进行了测试。构造函数===y.constructor 如果(x)。hasOwnProperty (p)) {//允许比较x [p] y [p]当设置为定义 如果(!y。hasOwnProperty (p)) { 返回错误; }//如果他们有相同的严格的价值或认同他们是平等的 if (x (p)===y [p]) { 继续; }//数字、字符串、函数、布尔值必须严格相等 如果(typeof (x [p]) !==岸韵蟆?{ 返回错误; }//对象和数组必须递归地进行测试 如果(!对象。equals (x [p] y [p])) { 返回错误; } } } (p y) {//允许x [p]被设置为定义 如果(y)。hasOwnProperty (p),,! x。hasOwnProperty (p)) { 返回错误; } } 返回true; }; >之前经检测,同样也不支持复杂数据结构的对象。
一般情况下用的话上述2种方法已经够用了,拿来作比较的一般都是简单的数据结构。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数组操作技巧总结》,《JavaScript遍历算法与技巧总结》,《JavaScript面向对象入门教程》、《JavaScript数学运算用法总结》,《JavaScript数据结构与算法技巧总结》及《JavaScript错误与调试技巧总结》
希望本文所述对大家JavaScript程序设计有所帮助。
JS判断两个数组或对象是否相同的方法示例