相关疑难解决方法(0)

Javascript - deepEqual比较

问题(来自Eloquent Javascript第2版,第4章,练习4):

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

测试用例:

var obj = {here: {is: "an"}, object: 2};
console.log(deepEqual(obj, obj));
// ? true
console.log(deepEqual(obj, {here: 1, object: 2}));
// ? false
console.log(deepEqual(obj, {here: {is: "an"}, object: 2}));
// ? true
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))
        return deepEqual(x[prop], y[prop]);
    /*This is …
Run Code Online (Sandbox Code Playgroud)

javascript recursion

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

javascript ×1

recursion ×1