Object.assign для массива объектов - PullRequest
0 голосов
/ 23 апреля 2020

Так что я могу использовать object.assign на объекте, подобном этому

let recipe = {"recipeId":1,"title":"Instant Pot® Chicken and Wild Rice Soup","directions":"Lorem ipsum dolor sit","imageLink":"https://images-gmi-pmc.edge-generalmills.com/60c3ebda-50a7-415e-8c66-14f6c9b93034.jpg","id":"1"}
this.editableRecipe = Object.assign({},recipe); 

, но у меня возникают проблемы с этим со списком объектов, подобным этому:

let ingredients = [
    {"ingredientId":1,"amount":1,"unit":"package","ingredient":"(20 oz) boneless skinless chicken thighs","note":"patted dry","id":"1"},
    {"ingredientId":2,"amount":1,"unit":"teaspoon","ingredient":"salt22323","note":"","id":"2"},
    {"ingredientId":3,"amount":0.5,"unit":"teaspoon","ingredient":"pepper","note":"","id":"3"},
    {"ingredientId":4,"amount":2,"unit":"tablespoons","ingredient":"butter","note":"","id":"4"},
    {"ingredientId":5,"amount":1,"unit":"package","ingredient":"(20 oz) boneless skinless chicken thighs","note":"patted dry","id":"5"},
    {"ingredientId":6,"amount":1,"unit":"teaspoon","ingredient":"salt","note":"","id":"6"}
];

// this.editableIngredients = something for object assign for the array here

Из того, что я читал, похоже, что array.map метод, вероятно, был бы лучшим способом, но у меня возникли некоторые проблемы с его правильностью.

Основано на этом Я пробовал что-то вроде этого: this.editableIngredients = ingredients.flat().map(p => Object.assign(p));

Также пробовал несколько разных итераций, основанных на чтении this

1 Ответ

1 голос
/ 23 апреля 2020

[ИСПРАВЛЕНОx2] Может быть что-то вроде этого:

copy = ingredients.map(o=>Object.assign({},o))
...