【问题标题】:How to create a new Object taking existing object as reference如何以现有对象为参考创建新对象
【发布时间】:2018-10-10 10:27:36
【问题描述】:

我正在尝试通过引用现有对象来创建一个新对象,如下所示。

var c = {
        "pstn_id": 1,
        "pstn_ds": 1,
        "pstn_titl_tx": 1,
          "job_id": 1,
           "ov_co_id":1,
          "efcv_bgdt":1

                            };

var newObj ={};
Object.getOwnPropertyNames(c).forEach(function(ce){

  newObj["_"+ce] = "$"+ce;
});
console.log(newObj);
//console
[object Object] {
  _efcv_bgdt: "$efcv_bgdt",
  _job_id: "$job_id",
  _ov_co_id: "$ov_co_id",
  _pstn_ds: "$pstn_ds",
  _pstn_id: "$pstn_id",
  _pstn_titl_tx: "$pstn_titl_tx"
}

此控制台显示一个对象,但不是按照我使用的参考对象的顺序

为什么新创建的属性名不按循环顺序。

我要按这个顺序,

{
  _pstn_id: "$pstn_id",
  _pstn_ds: "$pstn_ds",
  _pstn_titl_tx: "$pstn_titl_tx",
  _job_id: "$job_id",
  _ov_co_id: "$ov_co_id",
  _efcv_bgdt: "$efcv_bgdt"
}

【问题讨论】:

标签: javascript object properties key-value


【解决方案1】:

您正在寻找的是 Object.assign。如前所述,对象是键值对的无序列表,因此您无法保证它们打印的顺序。如果您想保持插入顺序,请查看地图。他们可能会有所帮助。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 2015-09-24
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多