js的Map、Set数据类型

new Map() 类似于{}只是新增了很多属性和方法

1. Map的属性

size表示长度

2. Map的方法

clear 清空数据

delete删除某一个键值

forEach遍历

get获取key值

set  key跟value赋值

has 是否有这个key

3. Map的实用 leedcode第一题的两数之和

var twoSum = function (nums, target) {
    let arrMap = new Map();
    let len = nums.length;
    for (let i = 0; i < len; i++) {
        let complement = target - nums[i];
        if (arrMap.has(complement)) {
            return [arrMap.get(complement), i]
        }
        arrMap.set(nums[i], i);
        // arrMap.set(nums[i], i);
    }
    throw new Error('No two sum solution')
};

new Set类似于[] array 只有值

1. Set的属性

size表示长度

2. Set的方法

add 添加数据

clear 清空数据

delete 删除某一个值

forEach 遍历

has 是否有这个value

3. Set的实用 leedcode第三题 无重复字符的最长子串

/**
 * @param {string} s
 * @return {number}
 */
var lengthOfLongestSubstring = function (s) {
    let nLen = s.length;
    let maxLen = 0;
    for (let i = 0; i < nLen; i++) {
        for (let j = i + 1; j <= nLen; j++) {
            if (isUnique(s, i, j)) {
                maxLen = maxLen < (j - i) ? (j - i) : maxLen;
            } else {
                //继续以下一个字符作为首字符
                break;
            }
        }
    }
    return maxLen;
};
function isUnique(s, start, end) {
    let charSet = new Set();
    for (let i = start; i < end; i++) {
        if (charSet.has(s[i])) {
            return false;
        }
        charSet.add(s[i]);
    }
    return true;
}


猜你喜欢

转载自blog.csdn.net/weixin_42066070/article/details/132836584