Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Меняем местами массивы в json (https://javascript.ru/forum/dom-window/80067-menyaem-mestami-massivy-v-json.html)

dima85 23.04.2020 00:02

Меняем местами массивы в json
 
Подскажите как с помощью js можно передвинуть
{
   "sdfdsf":"33"
   "4524":"222"
  }

В самое начало "content":[
{
 "sdf":"1",
 "content":[
  {
   "sdf":"1",
   "sdf":"sdf"
  },
  {
   "123":"333"
  },
  {
   "sdfdsf":"33"
   "4524":"222"
  }
]}


Это достаточно просто сделать если мы можем привязаться с какому-то ID (пример ниже), но в данном случае они все разные.
function findAndReplace2(object, value, replacevalue){
  for(var x in object){
    if(typeof object[x] == typeof {}){
      findAndReplace2(object[x], value, replacevalue);
    }
    if(object[x] == value){ 
      object["Appname"] = replacevalue;
      // break; // uncomment to stop after first replacement
    }
  }
}

рони 23.04.2020 00:24

dima85,
:-?
const data = {
 "sdf":"1",
 "content":[
  {
   "sdf":"1",
   "test":"sdf"
  },
  {
   "123":"333"
  },
  {
   "sdfdsf":"33",
   "4524":"222"
  }
]}
const index = 2;
data.content.unshift(data.content.splice(index, 1)[0]);
console.log(data)

dima85 23.04.2020 00:34

Спасибо!

voraa 23.04.2020 09:05

А чего не
data.content.unshift(data.content.pop());

laimas 23.04.2020 09:15

Цитата:

Сообщение от voraa
А чего не

А зачем вообще это делать, двигать :)

рони 23.04.2020 09:20

Цитата:

Сообщение от voraa
А чего не

требовалось менять элементы массива местами, так что решение скорее
[a, b] = [b, a].

voraa 23.04.2020 09:35

Цитата:

Сообщение от рони (Сообщение 523267)
требовалось менять элементы массива местами, так что решение скорее
[a, b] = [b, a].

Нет, не менять. Там 3 элемента
Надо последний сделать первым.
Первый при этом станет вторым, а не последним.

рони 23.04.2020 09:46

voraa,
ок, что на самом деле требовалось, хотите задание, оно есть у меня :) , есть два массива, как при изменении одного сохранить порядок второго.

было
[1, 2, 3, 4, 5] и [a, b, c, d, e]
стало [a, d, b, c, e], как получить [1, 4, 2, 3, 5] ?

voraa 23.04.2020 09:54

Задание было в первом посте.

рони 23.04.2020 09:55

Цитата:

Сообщение от voraa
Задание было в первом посте.

ок. :( :( :(


Часовой пояс GMT +3, время: 17:09.