第十周 set map数组复习

第十周 set map数组复习,第1张

第十周 1. 总结Set的属性和方法,方法用代码来解释2. 总结Map的属性和方法,方法用代码来解释3. 分别用set和map来解决这道题题目setmap 4. 复习数组的属性和方法,方法用代码来解释属性方法

1. 总结Set的属性和方法,方法用代码来解释

内有iterator接口,所以能够使用for in和for of,当然for in是不会和数组一样有123的,声明都没有,而for of能够输出集合里的所有的元素。
会自动将重复的元素去除,就算是在声明的时候添加了多个相同的元素,它就只会保存一个

声明

let set = new Set([1, "2"]);
for(let v of set){
    console.log(v);//遍历输出;
}
console.log(set.size);//返回集合大小
console.log(set.add(3));//增加一个集合元素,返回集合
console.log(set.delete(10))//返回boolean值,是否删除成功,有的时候可能都没有这个元素
set.has("sf");//判断是否有这个元素,返回boolean值   
2. 总结Map的属性和方法,方法用代码来解释

声明
就是普通的对象声明方式

let m = new Map();

添加元素

m.set("name", "iceylia");
m.set("change", function(){});

得到大小

console.log(m.size);//2

清空地图

m.clear();

访问元素

console.log(m.get("name"));//iceylia
console.log(m.has("name"));//true;

遍历

for(let v of m){
    console.log(v);
    console.log(v[1]);//iceylia  function
}
3. 分别用set和map来解决这道题 题目

leetcode349. 两个数组的交集

set
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    let set1 = new Set();
    let ans = [];
    let ansIndex = 0;
    for(let i = 0; i < nums1.length; i++){
        set1.add(nums1[i]);    
    }
    for(let i = 0; i < nums2.length; i++){
        if(set1.has(nums2[i])){
            set1.delete(nums2[i]);
            ans[ansIndex++] = nums2[i];
        }
    }

    return ans;
};
map
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    let m = new Map();
    let ans = [];
    let ansIndex = 0;
    for(let i = 0; i < nums1.length; i++){
        m.set(nums1[i], 0);
    }
    for(let i = 0; i < nums2.length; i++){
        if(m.has(nums2[i]) && !m.get(nums2[i])){
            m.set(nums2[i], 1);
            ans[ansIndex++] = nums2[i];
        }
    }
    return ans;
};

感觉自己凭实力比较好地做出一个题目的感觉是真的很好。

4. 复习数组的属性和方法,方法用代码来解释 属性 arr.length长度;arr.constructor返回数组的构造函数arr.prototype 原型对象 用于给对象添加属性和方法。 方法
let arr = [];
let arr1 = new Array("c");
let arr2 = ["afd", 2];
//入栈,返回入栈数量
console.log(arr.push("a", "b", "c"));//3
//出栈,返回出栈元素
console.log(arr.pop());//c

//遍历
for(let i of arr){
  console.log(i);//ab;
}
for(let i in arr){
  console.log(i);//01
}

//从前面进行添加和删除
console.log(arr.unshift(0, 1));//添加,返回新长度4    01ab
console.log(arr.shift());//删除,返回元素0   1ab

//翻转原有数组,返回翻转后的数组
console.log(arr.reverse());//ba1
//排序,返回排序后原数组,默认升序,参数为函数,可自定义返回方式
console.log(arr.sort());//1ab

//连接
console.log(arr.concat(arr1));//1abc
console.log(arr);//1ab
//切割
console.log(arr.slice(0, 1)[0]);//1   arr[0]到1,不包含1包含0
console.log(arr.slice(-2))// ab    倒数第二个到最后一个
console.log(arr.slice(-2, -1))// a    倒数第二个
console.log(arr);//1ab

//拼接
console.log(arr.splice(0, 1))//1   ab
console.log(arr.splice(0, 2, "a", "b"));//ab

//插入
console.log(arr.join("-"));//a-b 
console.log(arr);//ab

//查找
console.log(arr.includes("a"));//true

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1322905.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-12
下一篇2022-06-12

发表评论

登录后才能评论

评论列表(0条)

    保存