利用JavaScript的新特性(ECMA2019/ES10)实现对象key值大小写转换

本文介绍如何使用JavaScript将对象的键(key)转换为全大写或全小写。包括ES10之前的传统方法和利用ES8及ES10新特性Object.entries与Object.fromEntries的现代方法。
摘要由CSDN通过智能技术生成

一、需求

使用js将对象的key转为全大写或者全小写。

二、以前的实现方案

在ES10出现之前一般的实现方案是这样的:

// 转换小写
function key2Lower(obj) {
	for (var key in obj) {
		obj[key.toLowerCase()] = obj[key];
		delete(obj[key]);
	}
	return obj;
}
// 转换大写
function key2Upper(obj) {
	for (var key in obj) {
		obj[key.toUpperCase()] = obj[key];
		delete(obj[key]);
	}
	return obj;
}
//或者--------------------------------------
function key2Lower(obj) {
    let newO = {};
	for (var key in obj) {
		newO[key.toLowerCase()] = obj[key];
	}
	return newO;
}
function key2Upper(obj) {
    let newO = {};
	for (var key in obj) {
		newO[key.toUpperCase()] = obj[key];
	}
	return newO;
}

三、新的特性

在ES8中有一个新的方法Object.entries:将一个对象转换为格式为 [ [key1,value1],[key2,value2] ] 的二维数组。

在ES10中出现了一个与之对应的方法Object.fromEntries:即将一个二维数组转换为对象。

在这两个方法的互相配合下就有了新的解决方案(注:这种方案的性能远差于直接操作源对象,此处只是展示一种使用场景):

// 转换小写
function key2Lower(obj) {
	if (!obj) {
		return obj;
	}
	const array_2D_obj = Object.entries(obj).map(x => [x[0].toLowerCase(), x[1]]);
	return Object.fromEntries(array_2D_obj);
}

// 转换大写
function key2Upper(obj) {
	if (!obj) {
		return obj;
	}
	const array_2D_obj = Object.entries(obj).map(x => [x[0].toUpperCase(), x[1]]);
	return Object.fromEntries(array_2D_obj);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值