如何使用lodash isEqual(object,other)方法找到哪些属性不同?

时间:2015-05-19 07:18:08

标签: javascript json redis lodash

我使用redis通过字符串化并稍后解析它来存储对象。由于对象包含日期对象,因此我必须使用reviver JSON.parse函数将date字符串再次转换为Date对象。

我面临的问题是,当我通过JSON.parse _.isEqual(object,other)方法对它们进行比较时,从lodash收到的对象与原始对象的关系并不相等。

但是,如果我将两个对象的内容打印到控制台上并进行比较,则内容相同。有人遇到过这个问题吗?

以下是我为测试目的而添加的部分代码?导致问题的是json.stringify。 `

var k  = JSON.stringify(j);
    k = JSON.parse(k, function (key, value) {
                   if (key === 'creation' || key === 'lastAccessed') {
                        return new Date(value);
                      } else {
                        return value;
                      }
                });
console.log("Are j and k equal ? ", _.isEqual(j,k));

`

这是j的值:

    { _jar:
   { store:
      { idx:
         { 'XXXXXXXX.XXX.com':
            { '/':
               { JSESSIONID:
                  { key: 'JSESSIONID',
                    value: 'XXXXXXXXXXXXXX',
                    path: '/',
                    creation: Tue May 19 2015 12:27:44 GMT+0530 (India Standard Time),
                    hostOnly: true,
                    domain: 'XXX.XXX.com',
                    lastAccessed: Tue May 19 2015 12:27:44 GMT+0530 (India Standard Time) },
                 ABC:
                  { key: 'XXXXX',
                    value: '2015.1.0',
                    domain: 'XXXX.XXX.com',
                    path: '/',
                    creation: Tue May 19 2015 12:27:44 GMT+0530 (India Standard Time),
                    hostOnly: false,
                    lastAccessed: Tue May 19 2015 12:27:44 GMT+0530 (India Standard Time) } } } } } } }

0 个答案:

没有答案