我想遍历我的键/值对并将每个键的所有值推入其自己的数组中。每个键的这些值数组应推入单个输出数组。
我希望这可以解释我要做什么:
Input: map = {"hi":["hello","hey","howdy"],"bye":["Goodbye","Ciao"]}
Output: output = [["hello","hey","howdy"],["Goodbye","Ciao"]]
这是我到目前为止所拥有的:
return Object.values(map)
关于为什么我在TypeScript中遇到错误的任何帮助。在Javscript中,它似乎可以编译并返回正确的答案。
Property 'values' does not exist on type 'ObjectConstructor'
对于背景,这是分组字谜问题的一部分,因此我从提供的字符串数组“ str”中按如下方式填充地图。
let map = {};
str.forEach(anagram => {
const sortedWord = anagram
.split("")
.sort()
.join("");
map[sortedWord] = map[sortedWord] || [];
map[sortedWord].push(anagram);
});
return Object.values(map)
}
答案 0 :(得分:1)
该代码可以使用values
来代替使用keys
。从文档中:
Object.keys()
方法返回给定对象自己的可枚举属性名称的数组,其顺序与我们在普通循环中获得的顺序相同。
请在此处进一步阅读:Object.keys()
作为解决方案,我会考虑您的情况:
(function() {
const input = {"hi":["hello","hey","howdy"],"bye":["Goodbye","Ciao"]};
console.log('input', input);
const output = Object.keys(input).map(key => input[key]);
console.log('output', output);
})();
我想这种选择就像魅力一样。