Как назначить значения объекта в порядке в javascript - PullRequest
0 голосов
/ 21 апреля 2020

Я хотел бы знать, как назначить объект, как показано на рисунке. У меня есть объекты fields и fields1, если значение объекта пусто, список в конце

var fields = {
  f1: "",
  f2: "finanace",
  f3: "service"
}

var fields1 = {
  f1: "finanace",
  f2: "",
  f3: "",
  f4: "service"
}

function newObj(fields) {
   var newfields ={
    f1: fields.f1 || "",
    f2: fields.f2 || "",
    f3: fields.f3 || "",
  }
  return newfields;
}

Expected Output:

var newfields= {
   f1: "finanace",
   f2: "service"
   f3: ""
}
var newfields1= {
   f1: "finanace",
   f2: "service"
   f3: "",
   f4: ""
}

1 Ответ

0 голосов
/ 21 апреля 2020

Если поля на самом деле названы f1, f2, f3, f4, то это определяет порядок, и вы можете посмотреть каждое поле текущего объекта и добавить любые непустые значения в следующее непустое поле в результирующем объекте, например так:

var fields = {
  f1: "",
  f2: "finanace",
  f3: "service"
};

var fields1 = {
  f1: "finanace",
  f2: "",
  f3: "",
  f4: "service"
};

function newObj(fields) {
  let newIndex = 1;
  let oldIndex = 1;
  const newfields = { f1: "", f2: "", f3: "", f4: "" };
  while (fields[`f${oldIndex}`] != null) {
    const newKey = `f${newIndex}`;
    const oldKey = `f${oldIndex}`;
    if (fields[oldKey]) {
      newfields[newKey] = fields[oldKey];
      newIndex++;
    }
    oldIndex++;
  }
  return newfields;
}

console.log(newObj(fields));
console.log(newObj(fields1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...