Как изменить индекс вложенного объекта в объекте - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь найти способ изменить индекс объекта, который имеет некоторые другие объекты, также с ключами.Предположим, я хочу передать ключ функции как 3 (C), затем я хочу найти ключ в объекте, который совпадает с 3 (C), и сделать его индекс как 0

Я пытался использовать hasOwnProperty, ноэто всегда дает мне только истину, когда я прохожу 3 (C).Я пытался большинство вещей, но это не удается в случае вложенных массивов

{
  "1(C)": {
    "STORE (06:00 )": [
      {
        "personId": "---",
        "scheduledEventId": "----",
        "employeeName": "----.",
        "phoneNumber": "-----",
        "ranking": "-----",
        "perAph": "----",
        "distPerAph": "--",
        "distanceToEvent": "0"
      }
    ]
  },
"3(C)": {
    "THUdx (06:00 )": [
      {
        "personId": "---",
        "scheduledEventId": "----",
        "employeeName": "----.",
        "phoneNumber": "-----",
        "ranking": "-----",
        "perAph": "----",
        "distPerAph": "--",
        "distanceToEvent": "0"
      }
    ]
  }
}

Ожидаемый результат должен иметь объект 3 (C) с индексом 0

{
"3(C)": {
    "THUdx (06:00 )": [
      {
        "personId": "---",
        "scheduledEventId": "----",
        "employeeName": "----.",
        "phoneNumber": "-----",
        "ranking": "-----",
        "perAph": "----",
        "distPerAph": "--",
        "distanceToEvent": "0"
      }
    ]
  },
  "1(C)": {
    "STORE (06:00 )": [
      {
        "personId": "---",
        "scheduledEventId": "----",
        "employeeName": "----.",
        "phoneNumber": "-----",
        "ranking": "-----",
        "perAph": "----",
        "distPerAph": "--",
        "distanceToEvent": "0"
      }
    ]
  }
}

1 Ответ

0 голосов
/ 03 июня 2019

Вы, вероятно, делаете что-то неправильно, и было бы невозможно сделать то, что вы пытаетесь выполнить в соответствии со стандартами.

Однако, по крайней мере, в Chrome, где порядок ключей в объектах, по-видимому, определяется порядком определения ключей, что-то подобное возможно при создании нового объекта, копировании элемента, который вы хотите иметь в начале на 0-й позиции, а затем скопировать всех оставшихся членов.

function moveToFirst(src, key) {
  var keys = Object.keys(src);
  var temp = {};
  temp[key] = src[key];
  for (var k = 0; k < keys.length; ++k){
    if (keys[k] !== key) {
      temp[keys[k]] = src[keys[k]];
    }
  }
  return temp;
}
var foo = {c: "1", a: 5, bar: "lol"}
foo = moveToFirst(foo, "a");  // {a: 5, c: "1", bar: "lol"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...