Изменение вывода, предоставленного JSON .stringify, определенным образом - PullRequest
0 голосов
/ 27 февраля 2020

Я не знаком с кодом javascript, но по некоторым причинам я настраиваю некоторый файл js, доступный на github.

Одна из строк исходного кода -

JSON.stringify(a[2])

И некоторые примеры выводов, которые я получаю (для предыдущего кода):

{"x": 1, "y": 1}

{"x ": 1," y ": 1," z ": 2}

Я хотел бы изменить эту строку исходного кода для получения выходных данных, например

{ (x, 1), (y, 1)}

{(x, 1), (y, 1), (z, 2)}

вместо единиц Я осознаю.

Есть предложения о том, какой код я мог бы использовать для получения таких выходных данных?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

{(x,1),(y,1)} недействительно, но [["x",1],["y",1]] есть, что вы можете получить следующим образом:

var arr = {"x":1,"y":1}
var res = {};
for(data in arr){
  res[data]=[data,arr[data]];
}
console.log(Object.values(res));
0 голосов
/ 27 февраля 2020

Прежде всего вы должны прочитать JavaScript основы, и вы говорите об объектах. В JavaScript почти «все» является объектом.

  1. Булевы значения могут быть объектами (если они определены с помощью новое ключевое слово)
  2. Числа могут быть объектами (если они определены с новым ключевым словом)
  3. Строки могут быть объектами (если они определены с новым ключевым словом)
  4. Даты всегда являются объектами
  5. Математика всегда является объектом
  6. Регулярные выражения всегда являются объектами
  7. Массивы всегда являются объектами
  8. Функции всегда являются объектами
  9. Объекты всегда объекты
  10. Все значения JavaScript, кроме примитивов, являются объектами.

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

Значения записываются как пары имя: значение (имя и значение разделяются двоеточием).

Пример

var person = {x:10, y:20, z:50};

просто печатать как

var propName = JSON.stringify(a[2]);

for( propName in nyc) {
    propValue = nyc[propName]

    console.log('('+propName+','+propValue+')');
}
...