gpt4 book ai didi

javascript - 如何在 lodash 映射函数中获取要用作变量的键?

转载 作者:行者123 更新时间:2023-11-29 19:15:40 24 4
gpt4 key购买 nike

为了方便起见,我正在尝试重组一个对象。

这是一般结构:

 var dictionary = { "word": {"content": "wordy"}, "palabra": {"content":"palabrota" }};

我希望它看起来像这样:

 [{"wordy":"word"},{"palabrota":"palabra"}]

我正在尝试这段代码:

_.map(dictionary, function(v,k){ var new_key = v.content;return { new_key: k };} );

但不是我所期待的,而是结果:

[ { new_key: 'word' }, { new_key: 'palabra' } ]

如何在这个函数中获取一个键作为变量?

最佳答案

您可以使用 _.invertBy method (从 LoDash v4.1.0 开始),这将为您提供键和值数组,从而确保值不会被覆盖。

var dictionary = {
"word": {"content": "wordy"},
"anotherWord": {"content": "wordy"},
"palabra": {"content":"palabrota" }
};

var result = _.invertBy(dictionary, function(item) {
return item.content;
});

// "{"wordy":["word","anotherWord"],"palabrota":["palabra"]}"

编辑:下面的早期回复。这可行,但限制是重复的内容值会覆盖键。下面的 _.transform 文档展示了如何生成一个数组来处理重复项,并且类似的设置可用于常规 JS 方法。

您可以使用 _.transform method :

var transformedResult = _.transform(dictionary, function(result, value, key) {
return result[value.content] = key;
});

或者根本没有 LoDash,您可以按预期构建对象。

var result = {};
Object.keys(dictionary).forEach(function(key) {
var value = dictionary[key].content;
result[value] = key;
});

关于javascript - 如何在 lodash 映射函数中获取要用作变量的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35563090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com