相关疑难解决方法(0)

如何测试空的JavaScript对象?

在AJAX请求之后,有时我的应用程序可能会返回一个空对象,例如:

var a = {};
Run Code Online (Sandbox Code Playgroud)

我怎样才能检查是否是这种情况?

javascript

2730
推荐指数
40
解决办法
195万
查看次数

获取两个javascript对象的增量

我有两个大的,嵌套的javascript对象,我想比较它们并创建一个只代表差异的对象.我打算用它来创建一个PATCH请求.

给定oldObjnewObj:

  • 仅打开的属性newObj应该在diff中
  • 仅打开的属性oldObj应该在diff中
  • newObj如果值是数组,字符串或数字,则两个对象上的属性应使用值
  • 应该递归地比较对象
  • 无需动态合并阵列,完全替换即可

这可能看起来像重复,但我认为不是.此解决方案(1)仅为一级深度(下面的答案是非递归的,在阵列上爆炸,并且不是双向的).这个解决方案(2)返回不变的属性不是双向的.

目标输入/输出:

diff({a:1},{a:0}); // {a:0}

diff({a:1},{b:1}); // {a:1,b:1}

diff({
  a: { x: 1 },
  b: 1
},
{
  a: { x: 0 },
  b: 1
}) // {a:{x:0}}

diff({a:[1,3,5,7]},{a:[1,3,7]}); // {a:[1,3,7]} 
Run Code Online (Sandbox Code Playgroud)

我正在使用从解决方案1修改的以下方法.它符合所有条件,diff({a:1},{b:1}) // {a:1,b:1}因为它只在一个方向上进行比较.

jsonDiff = function(oldObject, newObject) {
  var diff, i, innerDiff;
  diff = {};
  for (i in newObject) {
    innerDiff = {};
    if (_.isArray(newObject[i])) {
      if …
Run Code Online (Sandbox Code Playgroud)

javascript algorithm json

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

标签 统计

javascript ×2

algorithm ×1

json ×1