美文网首页
JavaScript如何重命名对象键?

JavaScript如何重命名对象键?

作者: phpCN中文网 | 来源:发表于2019-07-10 09:34 被阅读0次

    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>

    效果图:


    本文参考地址:https://www.html.cn/qa/javascript/10286.html

    相关文章

      网友评论

          本文标题:JavaScript如何重命名对象键?

          本文链接:https://www.haomeiwen.com/subject/yjytkctx.html