如何创建一个以现有对象为参考的新对象

时间:2018-10-10 10:27:37

标签: javascript object properties key-value

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

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"
}

1 个答案:

答案 0 :(得分: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