Как изменить объект внутри массива?

293
27 августа 2017, 06:14

Привет. Есть JSON-массив:

{
  "terms": {
    "31": {
      "unified_price": 26803,
      "currency": "rub",
      "flights_baggage": [
        [
          "1PC23",
          "1PC23"
        ],
        [
          "1PC23",
          "1PC23"
        ]
      ],
      "flights_handbags": [
        [
          "",
          ""
        ],
        [
          "",
          ""
        ]
      ],
      "url": 3100000,
      "price": "26802.08730964467005076142132"
    }
  }
}

В нём есть объект terms, где первый элемент имеет название "31". Я хочу изменить его таким образом, чтобы он стал массивом и присвоить значение 31 в качестве значения ключа gate_id. Должно выглядеть это примерно так:

{
  "terms": {
    {
      "gate_id": 31
      "unified_price": 26803,
      "currency": "rub",
      "flights_baggage": [
        [
          "1PC23",
          "1PC23"
        ],
        [
          "1PC23",
          "1PC23"
        ]
      ],
      "flights_handbags": [
        [
          "",
          ""
        ],
        [
          "",
          ""
        ]
      ],
      "url": 3100000,
      "price": "26802.08730964467005076142132"
    }
  }
}

Пытаюсь изменить его таким образом:

$.map(props.terms, (value, i) => $.extend(value, {gate_id: i}));

Но ничего не происходит. Объект остаётся объектом.

Answer 1

var data = { 
  "terms": { 
    "31": { 
      "unified_price": 26803, 
      "currency": "rub", 
      "flights_baggage": [ 
        [ 
          "1PC23", 
          "1PC23" 
        ], 
        [ 
          "1PC23", 
          "1PC23" 
        ] 
      ], 
      "flights_handbags": [ 
        [ 
          "", 
          "" 
        ], 
        [ 
          "", 
          "" 
        ] 
      ], 
      "url": 3100000, 
      "price": "26802.08730964467005076142132" 
    } 
  } 
}; 
 
var key = Object.keys(data.terms)[0]; 
data.terms[key].gate_id = +key; 
data.terms = [data.terms[key]]; 
 
console.log(data);

READ ALSO
Чем сортировать многомерный json? [дубликат]

Чем сортировать многомерный json? [дубликат]

На данный вопрос уже ответили:

334
Создание директив в Angular 4

Создание директив в Angular 4

Недавно начал учить Angular4Почему при создании своих атрибутивных директив необходимо в конструкторе указывать private в параметрах? Например:

341
Влияет ли на Seo смена title и url посредством pushState?

Влияет ли на Seo смена title и url посредством pushState?

ЗдравствуйтеНашел на гитхабе плагин который добавляет к блокам title, url, description и keywords

231