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

Итак, я новичок в программировании на javascript, и мне нужно найти способ изменить имя ключа и значения объекта.

Вот объект, я нахожусь в переменной с именемjson:

{ 1079: "i",
  1078: "h", 
  843: "g", 
  842: "f",
  841: "e", 
  688: "d",  
  277: "c",
  276: "b",
  70: "a",
}

Это ожидаемое console.log:

{ name: 1079 value: "i",
   name: 1078: value: "h", 
   name: 843: value:"g", 
   name: 842: value:"f",
   name: 841: value:"e", 
   name: 688: value:"d",  
   name: 277: value:"c",
   name: 276: value:"b",
   name: 70: value:"a",
}

В любом случае, спасибо всем, кто может мне помочь.

Ответы [ 5 ]

2 голосов
/ 05 июля 2019

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

Порядок теперь по ключу в числовом порядке из-за внутреннего упорядочения объектов с ключами, которые могут быть прочитаны как индексы.

var object = { 1079: "i", 1078: "h", 843: "g", 842: "f", 841: "e", 688: "d", 277: "c", 276: "b", 70: "a" },
    result = Object.entries(object).map(([name, value]) => ({ name, value }));

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
1 голос
/ 05 июля 2019

Это будет работать. Если вы ищете это.

let obj = {
  1079: "i",
  1078: "h",
  843: "g",
  842: "f",
  841: "e",
  688: "d",
  277: "c",
  276: "b",
  70: "a",
}
let result = Object.entries(obj).reduce((acc, [name, value]) => {
  acc.push({
    name,
    value
  })
  return acc;
}, [])
console.log(result)
0 голосов
/ 05 июля 2019

Возьмите массив, заполните его так, как вы хотите:

var json = { 1079: "i", 1078: "h", 843: "g", 842: "f", 841: "e", 688: "d", 277: "c", 276: "b", 70: "a" }

var arr = [];

for(k in json) arr.push({name:k, value:json[k]})

console.log(arr)
0 голосов
/ 05 июля 2019

Вы можете использовать Object.entries()

const data = { 
  1079: "i",
  1078: "h", 
  843: "g", 
  842: "f",
  841: "e", 
  688: "d",
  277: "c",
  276: "b",
  70: "a",
};

function formatObject(obj) {
  const arr = [];
  Object.entries(obj).forEach(x => {        
    arr.push({
      name: x[0],
      value: x[1]
    });
  });
  return arr;
}

const result = formatObject(data);
console.log(result);
0 голосов
/ 05 июля 2019
    var currentObj = { 1079: "i",
      1078: "h", 
      843: "g", 
      842: "f",
      841: "e", 
      688: "d",

      277: "c",
      276: "b",
      70: "a",
    };

    var newObj = Object.keys(currentObj).map(x => { return { name: x, value: currentObj[x] };});
console.log(newObj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...