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.
canConstruct("a", "b") -> falsecanConstruct("aa", "ab") -> falsecanConstruct("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;
};
                    