Get Watched Videos by Your Friends LeetCode solution in JavaScript
1/**2* @param {string[][]} watchedVideos3* @param {number[][]} friends4* @param {number} id5* @param {number} level6* @return {string[]}7*/8var watchedVideosByFriends = function (watchedVideos, friends, id, level) {9const queue = [];10queue.push([id, 0]);11const seen = new Set();12const map = {};1314while (queue.length > 0) {15const [id, _level] = queue.shift();16if (seen.has(id)) {17continue;18}19seen.add(id);20if (_level == level) {21for (const video of watchedVideos[id]) {22if (!map[video]) {23map[video] = 1;24} else {25map[video] += 1;26}27}28continue;29}3031for (const f of friends[id]) {32queue.push([f, _level + 1]);33}34}3536return Object.keys(map).sort((a, b) => {37const diff = map[a] - map[b];38if (diff == 0) {39return a.localeCompare(b);40}41return diff;42});43};