Как создать новый объект, используя существующий объект в качестве ссылки - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь создать новый объект, используя ссылку на существующий объект, как показано ниже.

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 голосов
/ 10 октября 2018

То, что вы ищете, это 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...