高级前端
手写代码
【Q598】如何实现一个深比较的函数 deepEqual

如何实现一个深比较的函数 deepEqual

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 614 (opens in a new tab)

Author 回答者: haotie1990 (opens in a new tab)

function isEqual(x, y) {
  if (x === y) {
    return true;
  } else if (
    typeof x === "object" &&
    x !== null &&
    typeof y === "object" &&
    y !== null
  ) {
    const keysX = Object.keys(x);
    const keysY = Object.keys(y);
    if (keysX.length !== keysY.length) {
      return false;
    }
    for (const key of keysX) {
      if (!isEqual(x[key], y[key])) {
        return false;
      }
    }
    return true;
  } else {
    return false;
  }
}

Author 回答者: shfshanyue (opens in a new tab)

TODO