【问题标题】:Lodash method for reversing key: values in object用于反转键的 Lodash 方法:对象中的值
【发布时间】:2016-05-12 13:16:34
【问题描述】:

无论如何,一个人可能能够打开以下内容;

{
    "ID": "id"
    "Name": "name"
}

进入;

{
    "id": "ID",
    "name": "Name"
}

使用 lodash?我正在专门寻找类似的东西;

var newObj = _.reverseMap(oldObj);

谢谢:)

【问题讨论】:

  • 谢谢,这也适用于嵌套对象吗?
  • 反转对象中的键和值听起来像是只有在您的程序设计有缺陷时才想要做的事情。请问这个应该是干什么用的?
  • 我必须将一个新的数据示意图映射到一个遗留系统,所以这并不是糟糕的程序设计,只是我们的新系统与现有系统一起工作的一种方式。所以在这种情况下,你的假设是有缺陷的:)
  • @Tomalak 在绞尽脑汁一段时间后,并没有看到任何其他实际在两个系统之间进行映射的方法,您能否请您解释一下这是一个有缺陷的设计?跨度>

标签: javascript node.js object lodash


【解决方案1】:

invert 适用于平面对象,如果你想嵌套,你需要这样的东西:

var deepInvert = function(obj) {
    return _.transform(obj, function(res, val, key) {
        if(_.isPlainObject(val)) {
            res[key] = deepInvert(val);
        } else {
            res[val] = key;
        }
    });
};

//

var a = {
    x: 1,
    y: 2,
    nested: {
        a: 8,
        b: 9
    }
};

var b = deepInvert(a);
document.write('<pre>'+JSON.stringify(b,0,3));
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.2.0/lodash.min.js"&gt;&lt;/script&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多