我正在尝试通过引用现有对象来创建新对象,如下所示。
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"
}
答案 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