相关疑难解决方法(0)

JavaScript:递归深度比较:对象和属性

今天我读完了Ch.4在Eloquent JS中,我很难理解如何在对象及其属性之间进行深度比较,特别是通过使用递归调用.我知道下面我的解决方案很天真,有点笨重,但我正试图把我所有的新东西都包围起来,我还在学习!只需不到一个月的编程:)我将不胜感激任何提示和帮助,你可能有改进代码,如果你可以帮助我更好地理解需要发生的递归.先感谢您!

  • 问题(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)

我的代码:

  function objectTester(x) {
      if (typeof x === 'object' && x !== null)
        return true;
    }

    function deepEqual(valOne, valTwo) {
      if (valOne === valTwo) return true;

      var comp1 = objectTester(valOne);
      var comp2 = objectTester(valTwo);

      if (comp1 === comp2) {
        var count1;
        var count2;
        for (var prop in valOne) {
            count1++
            return count1;
        }
        for (var …
Run Code Online (Sandbox Code Playgroud)

javascript recursion

5
推荐指数
2
解决办法
4265
查看次数

获取javascript中两个对象之间差异的属性

假设我有一个看起来像这样的对象:

{
  prop1: false,
  prop2: false,
  prop3: false
}
Run Code Online (Sandbox Code Playgroud)

和另一个看起来像这样的对象:

{
  prop1: false,
  prop2: true,
  prop3: false
}
Run Code Online (Sandbox Code Playgroud)

差异在prop2酒店内.是否有任何方法或库(虽然首选香草)将比较两个对象,找到具有不同值的属性,并返回属性名称(在这种情况下prop2)?

我尝试使用lodash中的差异和差异功能没有成功.任何帮助或建议将不胜感激!

javascript object difference

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

标签 统计

javascript ×2

difference ×1

object ×1

recursion ×1