如何在JavaScript中重命名对象键?

yanghs · · 513 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

JavaScript不提供内置函数来重命名对象键,那么如何重命名对象键?下面本篇文章就来给大家介绍一下在JavaScript中重命名对象键的方法,希望对大家有所帮助。

在JavaScript中,对象用于存储各种数据的集合,是属性的集合;属性是一个“key:value”对。其中key(键)称为“属性名”,用于标识值。下面介绍重命名对象键的方法。

方法一:通过简单的变量赋值来重命名对象

在分配了一个或多个变量之后,我们将删除旧的键值对并打印新的键值对。

语法:

obj['New key'] = obj['old key'];

注意:通过简单的变量赋值来重命名对象可以应用于多个键值对。

例:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>javascript:对象重命名键</title>

</head>

<body>

<p>点击重命名对象键</p>

<button type="button" onclick="rename()">

                  重命名

        </button>

<script>

var capitals = [{ // 创建对象“capital”

"Burma": "Naypyitaw" // key "Burma" 和 value "Naypitaw"

}];

console.log(capitals);

function rename() { // 单击按钮时要重命名的函数

capitals = capitals.map(function(obj) {

obj['Myanmar'] = obj['Burma']; // 分配新键

delete obj['Burma']; // 删除旧键

return obj;

});

console.log(capitals);

}

</script>

</body>

</html>

效果图:

方法二:使用defineProperty()来重命名对象

通过利用defineProperty()来操作对象的属性来重命名给定的对象键。

defineProperty():

此静态方法用于定义对象的新属性或修改现有属性,并返回该对象。它接受3个参数。它们分别是:要修改的对象,键的名称和描述属性。

语法:

Object.defineProperty(obj, key, description)

例:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>javascript:对象重命名键</title>

</head>

<body>

<p>点击重命名对象键</p>

<button type="button" onclick="rename()"> 重命名</button>

<script>

var capitals = [{ // 创建对象'capital'

"Persia": "Tehran" // key "Persia" 和 value "Tehran"

}];

console.log(capitals);

// 用于重命名旧键的函数

function renameKey(obj, old_key, new_key) {

// 检查如果 old key = new key 

if(old_key !== new_key) {

//修改对象的旧键提取描述

Object.defineProperty(obj, new_key,

  Object.getOwnPropertyDescriptor(obj, old_key));

delete obj[old_key]; // 删除旧键

}

}

function rename() {

capitals.forEach(obj => renameKey(obj, 'Persia', 'Iran'));

console.log(capitals);

}

</script>

</body>

</html>

效果图:

相关推荐:

angularjs教程

golang教程

redis入门教程


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:yanghs

查看原文:如何在JavaScript中重命名对象键?

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

513 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传