【发布时间】: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"
}
【问题讨论】:
-
Objects are an unordered colection of properties。您也可以使用扩展运算符来执行此操作。
obj2 = {...obj, a:"b"} -
当你控制台它时,你得到的顺序与旧对象相同,但是当你点击它展开并查看所有值时,谷歌浏览器按升序排列它。
标签: javascript object properties key-value