Mam ten przedmiot

myObject = {
  id: "44",
  name: "name",
  firstName: "fn",
  lastName: "tt",
  cars: [],
  houses: [],
  family: {}
}

Chcę sformatować ten obiekt na

myObject = {
  person: {
    id: "44",
    name: "name",
    firstName: "fn",
    lastName: "tt"
  },
  cars: [],
  houses: [],
  family: {}
}

Czy mimo wszystko mogę to zrobić bez korzystania z delete?

0
Ndx 2 kwiecień 2020, 18:01

4 odpowiedzi

Najlepsza odpowiedź

Możesz użyć destructuring:

const myObject = { id:"44", name:"name", firstName:"fn", lastName:"tt", cars: [], houses:[], family:{}}

const { houses, cars, family, ...rest } = myObject

const myNewObject = {
  person: rest,
  houses,
  cars,
  family
}
console.log(myNewObject)
4
messerbill 2 kwiecień 2020, 15:09

Możesz użyć przypisań destrukturyzujących, aby rozłożyć obiekt na zmienne i zrestrukturyzować je w prostej funkcji.

const format = (obj) => {
    const {id, name, firstName, lastName, ...props} = obj;
    return {person: {id, name, firstName, lastName}, ...props}
}

const formatted = format(myObject);

console.log (formatted)
<script>
var myObject = { id:"44", name:"name", firstName:"fn", lastName:"tt", cars: [], houses:[], family:{}}
</script>
1
Moritz Roessler 2 kwiecień 2020, 15:07

Możesz stworzyć nowy obiekt i przypisać mu właściwości:

let obj = { id:"44", name:"name", firstName:"fn", lastName:"tt", cars: [], houses:[], family:{}}

//I want to format this object to
//myObject = { person: {id:"44", name:"name", firstName:"fn", lastName:"tt"}, cars: [], houses:[], family:{}}

let res =  {}

res.person = {id: obj.id, name: obj.name, firstName: obj.firstName, lastName: obj.lastName}
res.cars = obj.cars
res.houses = obj.houses
res.family = obj.family

console.log(res)
0
symlink 2 kwiecień 2020, 15:07

Możesz zniszczyć to, czego potrzebujesz, resztę umieścić w zmiennej rest, a następnie ponownie przypisać myObject:

let myObject = {
  id: "44",
  name: "name",
  firstName: "fn",
  lastName: "tt",
  cars: [],
  houses: [],
  family: {}
}

const {id, name, firstName, lastName, ...rest } = myObject;

myObject = {
  person: { id, name, firstName, lastName },
  ...rest
}

console.log(myObject);
0
connexo 2 kwiecień 2020, 15:09