# Leetcode 1365 - [Leetcode 1365](#leetcode-1365) - [Creating a Frequancy Map](#creating-a-frequancy-map) - [Hammer Tool](#hammer-tool) ```js function reduceArray(nums) { const sorted = [...nums].sort((a, b) => a - b) return nums.map((x) => { nums.indexOf(sorted[x]) }) } ``` ## Creating a Frequancy Map ```js function reduceArray(nums) { const freqMap = new Map() nums.forEach((x) => { if (freqMap.has(x)) { freqMap.set(x, freqMap.get(x) + 1) } else { freqMap.set(x, 1) } }) return Array.from(freqMap.entries()).map(([k, v]) => v) } ``` ### Hammer Tool ```js function hammer(arrOrStr) { const freq = {}; for (let item of arrOrStr) { freq[item] = (freq[item] || 0) + 1; } // Then either: // A. Return freq map // B. Sort using freq return arrOrStr.slice().sort((a, b) => { if (freq[b] !== freq[a]) return freq[b] - freq[a]; // desc freq return a < b ? -1 : 1; // tiebreaker }); } ```