小编Den*_*rch的帖子

为什么在条件为假时执行JavaScript代码?(雄辩的JavaScript - 深度比较)

问题(Eloquent JS 2nd Ed,第4章,练习4):

编写一个函数deepEqual,它接受两个值,只有当它们是相同的值时返回true,或者是与对deepEqual的递归调用相比,其值也相等的对象.

测试用例:

var obj = {here: {is: "an"}, object: 2};
var obj1 = {here: {is: "an"}, object: 2};
console.log(deepEqual(obj,obj1));
Run Code Online (Sandbox Code Playgroud)

码:

var deepEqual = function (x, y) {
    if ((typeof x == "object" && x != null) && (typeof y == "object" && y != null)) {
        if (Object.keys(x).length != Object.keys(y).length)
          return false;

        for (var prop in x) {
          if (y.hasOwnProperty(prop)){  
            if (! deepEqual(x[prop], y[prop])) //should not enter!!
                return false;
                alert('test');
          }else return false; // What does …
Run Code Online (Sandbox Code Playgroud)

javascript if-statement function

1
推荐指数
1
解决办法
109
查看次数

标签 统计

function ×1

if-statement ×1

javascript ×1