Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.

    Each letter in the magazine string can only be used once in your ransom note.

    Note:
    You may assume that both strings contain only lowercase letters.

    1. canConstruct("a", "b") -> false
    2. canConstruct("aa", "ab") -> false
    3. canConstruct("aa", "aab") -> true
    /**
     * @param {string} ransomNote
     * @param {string} magazine
     * @return {boolean}
     */
    var canConstruct = function(ransomNote, magazine) {
        if (ransomNote.length > magazine.length) {
            return false;
        }
    
        const storage = {};
    
        for (let i = 0; i < magazine.length; i++) {
            let letter = magazine[i];
    
            storage[letter] = storage[letter] || 0;
            storage[letter]++;
        }
    
    
        for (let i = 0; i < ransomNote.length; i++) {
            let letter = ransomNote[i];
    
            if (!storage[letter]) {
                return false;
            }
    
            storage[letter]--;
        }
    
        return true;
    };