下划线jsreplace对象中的项目

使用Underscorejs,谁会知道如何简单地replace一个对象的属性?

例如,如果我有这个:

var obj = { "id" : 123, "date" : 142002020, "name" : "somename", "active" : 1 } 

现在我想要将活动设置为0;

我可以使用_.collect并检查“active”,然后更新它并返回一个新的variables,但似乎有更好的方法,我只是没有看到它。

谢谢!

你为什么不只是obj['active'] = 0 ,你不需要下划线来改变属性。

编辑

如果你需要find一个嵌套的键,也许你可以使用recursion函数。

 var obj = { 'foo' : { 'bar' : { 'active' : 1 } } } function replaceKey (obj, key, value) { var _obj = _(obj) _obj.each(function (v, k) { if (k === key) { obj[k] = value } else if (obj[k] === Object(obj[k])) { replaceKey(obj[k], key, value) } }) return _obj; } console.log('should be active:', obj.foo.bar.active === 1) replaceKey(obj, 'active', 0) console.log('should not be active:', obj.foo.bar.active === 0)