你需要了解的两个很少人知道但是好用ObjectAPI

1、Object.entries()

1.1 官网定义

Object.entries()方法返回一个给定对象自身可枚举属性的键值对数组,其排列与使用 for...in 循环遍历该对象时返回的顺序一致(区别在于 for-in 循环还会枚举原型链中的属性

历史:很早就被许多浏览器支持了,包括IE

1.2 基础使用

const obj = {
  a: 'somestring',
  b: 42
};
Object.entries(obj)
/* 返回值
[
    ['a', 'somestring'],
    ['b', 42]
]
*/

2、Object.fromEntries()

2.1 官网定义

Object.fromEntries() 方法把键值对列表转换为一个对象

历史:ES10 推出(即2019年)

2.2 基础使用

const obj = new Map([
  ['foo', 'bar'],
  ['baz', 42]
]);
Object.fromEntries(obj)	// { foo: "bar", baz: 42 }

3、使用场景

3.1 Map 转 Object

const map = new Map()
map.set('name', 'sishen')
map.set('age', 18)
console.log(map) // {'name' => 'jimmy', 'age' => 18}

Object.fromEntries(map)		// {name: "sishen", age: 18}

3.2 过滤器

const course = {
    math: 80,
    english: 85,
    chinese: 90
}
// 1 将对象转化为数组
const arr = Object.entries(course)
// 2 使用数组方法进行过滤
arr = arr.filter(([key, val]) => val > 80)
// 3 还原对象
Object.fromEntries(arr)		// { english: 85, chinese: 90 }

3.3 转化 url 参数

const queryString = "?name=jimmy&age=18&height=1.88";
// 工具类,方便处理路由参数
const queryParams = new URLSearchParams(queryString);
const paramObj = Object.fromEntries(queryParams);
// { name: 'jimmy', age: '18', height: '1.88' }

编辑 | sishen
来源 | 前端兔
公众号 | 前端兔

关注公众号查看更多前端知识分享~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值