Как я могу конвертировать Javascript список свойств в список объектов

1

У меня есть список свойств, подобных этому

[{"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"},
 {"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}]

Я хотел бы преобразовать их в нечто подобное

[{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"},
{"ID":"0","Day":"","Time":"","Type":"Both","Status":"false"}]

Это одна из проблем, с которыми я сталкиваюсь почти каждый раз, превращая форму в json и отправляя ее контроллеру сложного типа.

  • 0
    как вы конвертируете свою форму в JSON?
  • 0
    Я думаю, что нельзя предполагать, что фактические данные всегда будут такими аккуратными и упорядоченными, верно? Может ли быть отсутствующие ключи или временами измененный порядок?
Теги:

2 ответа

2
Лучший ответ

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

var data = [{ ID: "0" }, { Day: "" }, { Time: "" }, { Type: "Both" }, { Status: "false" }, { ID: "0" }, { Day: "" }, { Time: "" }, { Type: "Both" }, { Status: "false" }],
    result = data.reduce(function (r, o) {
        if ('ID' in o) {
            r.push(Object.assign({}, o));
        } else {
            Object.assign(r[r.length - 1], o);
        }
        return r;
    }, []);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
  • 0
    благодарю вас. это то, что я искал. ,
1

Это один странный вход,..

Со следующим я предполагаю, что всегда есть идентификатор, и он на первом месте. Поскольку эта структура данных не имеет способа расщепления свойств.

var a = [{"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"},
 {"ID":"0"},{"Day":""},{"Time":""},{"Type":"Both"},{"Status":"false"}];
 
var 
 ret = [],
 c = null;
a.forEach((r) => {
  if (r.ID) { c = {}; ret.push(c); }
  let k = Object.keys(r)[0];
  c[k] = r[k];
});

console.log(ret);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню