Как эффективно преобразовать все Javascript логические значения? - PullRequest
4 голосов
/ 07 августа 2020

Я пытаюсь отправить объект javascript в POST API, который принимает только python логические значения (True / False) и отклоняет javascript логические значения (true / false). Я хочу преобразовать все логические значения, присутствующие в объекте JS, в строки («истина» / «ложь»).

Есть ли эффективный способ сделать это?

Ввод -

const a = {
  b: {
    c: 1,
    d: true
  },
  e: true
}

Вывод -

const a = {
  b: {
    c: 1,
    d: "true"
  },
  e: "true"
}

1 Ответ

6 голосов
/ 07 августа 2020

Вы можете добавить функцию замены в качестве второго параметра к методу stringify, чтобы изменить способ преобразования значений.

const a = {
  b: {
    c: 1,
    d: true
  },
  e: true
};

function replacer(key, value) {
  if (typeof value === 'boolean') {
    return value ? 'True' : 'False';
  }
  return value;
}

console.log(JSON.stringify(a, replacer));
...