所以我在一篇提出以下问题的文章中发现了一个问题(找不到链接或者我有解决方案)。
给定一些用户数据,按技能对用户进行排序。以下是数据
const namesAndSkills = {
// Dev : Skills
mark : ["javascript","react","java"],
rob : "javascript",
patrick : ["javascript", "react", "python"]
}
Solution(expected output):
Javascript: ["mark", "rob", "patrick"],
react: ["mark", "patrick"],
java: mark,
python: patrick
我的解决方案只能将技能与用户分开,但我似乎找不到将用户与技能进行比较的方法。
const data = {
// // Dev : Skills
mark: ["javascript", "react", "java"],
rob: "javascript",
patrick: ["javascript", "react", "python"]
}
function swapNamesAndSkills(object) {
let data = Object.entries(object); //Was thinking of using the separated entries to compare, but couldn't evaluate correctly.
//Create a map to store our end key / values
let skillsToNames = new Map();
let skills = [].concat(...Object.values(object));
for (let i = 0; i < skills.length; i++) {
//if map doesnt have the skill as a key, add skill
if (!skillsToNames.has(skills[i])) {
//array of names that have the skill
skillsToNames.set(skills[i], []);
}
}
console.log(skillsToNames);
}
swapNamesAndSkills(data);
如您所见,我一直在寻找前进的方向,但似乎无法找到可靠的方法来反转数据。解决方案不一定能解决问题,我只是被卡住了,找不到通往终点的路。