ES6 常用操作

本文深入探讨了JavaScript中的Set和Map数据结构的使用方法,包括初始化、添加、删除、查找等操作,以及如何利用filter和reduce方法处理数组。此外,还介绍了Base64编码和解码的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、set

类似数组但是成员值是唯一的不重复的
初始化时可以用数组进行初始化

var set = new Set([1, 2, 3, 4, 4]);
[...set]
// [1, 2, 3, 4]

var s = new Set();
[2,3,2,2].map(x=>s.add(x));

for (let i of s) { console.log(i); } // 2 3

在Set内部,两个NaN是相等。两个对象总是不相等的。
set提供4个方法:
1:add(v):添加某个值,返回Set结构本身。
2:delete(v):删除某个值,返回一个布尔值,表示删除是否成功。
3:has(v):返回一个布尔值,表示该值是否为Set的成员。
4:clear():清除所有成员,没有返回值
可以使用for of遍历

二、map

Map结构提供了“值—值”的对应,是一种更完善的Hash结构实现。如果你需要“键值对”的数据结构,Map比Object更合适。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。

var m = new Map();
var o = {p: "Hello World"};

m.set(o, "content")
m.get(o) // "content"

m.has(o) // true
m.delete(o) // true
m.has(o) // false

注意,只有对同一个对象的引用,Map结构才将其视为同一个键

var map = new Map();
map.set(['a'], 1);
map.get(['a']) // undefined

上面代码key内存地址是不一样的,因此get方法无法读取该键,返回undefined。
Map提供的方法有:
    1:size():返回Map成员个数
    2:set(key,val):添加成员
    3:get(key):获取成员
    4:has(key):判断是否存在
    5:delete(key):删除成员
    6:clear():清空Map
Map可以使用keys();values();entries();forEach()遍历

for (let k of aaaaa.keys()) {
  console.log(k, aaaaa.get(k));
}

for (let v of aaaaa.values()) {
  console.log(v);
}

for (let [k,v] of aaaaa.entries()) {
  console.log(k,v);
}

aaaaa.forEach((v,k)=>{console.log(k,v)})

三、filter和reduce用法

let total = [1,2,3].filter(item => item > 1).reduce((total, item) => {return total + item;}, 0);

四、Base64操作

// base64解码
decodeBase64Content: function (base64Content) {
  let commonContent = base64Content.replace(/\s/g, '+');
  commonContent = Buffer.from(commonContent, 'base64').toString();
  return commonContent;
}
// base64编码
encodeBase64Content: function (commonContent) {
  let base64Content = Buffer.from(commonContent).toString('base64');
  return base64Content;
}

五、Uncaught(in promise)错误

    在使用Promise时如果调用了reject()但是使用时只有.then()没有.catch()时就会报这个错误

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值