2017-02-20 5 views
0

Пытается мутировать объекты в цикле for.Объект, не мутирующий

Я ожидаю console.log(dish) войти в dish объект с ingredients имущества, содержащего массив несмещенной ingredient с.

Когда я регистрирую dish.ingredients, он регистрирует ингредиенты.

Когда я регистрирую dish, он регистрирует dish объектов без ингредиентов.

Почему это?

for (let dish of dishArray) { 
    dish['ingredients'] = [] 
    for (let ingredient of ingredientsArray) { 
    if (dish._id.equals(ingredient._dishID)) { 
     dish['ingredients'].unshift(ingredient) 
    } 
    } 
    console.log(dish['ingredients'])    <------------- 
    console.log(dish)       <-------------   
} 

dishArray представляет собой массив объектов dish, возвращаемых из запроса мангустов.

+0

Что значение 'dishArray', и то, что ваш ожидаемый результат? Похоже, вы делаете console.log на 'dish ['components']', но нажатие 'dish' на' newDishArray', это предназначено? –

+0

@ DanielT. есть идеи ? – softcode

+0

Я задал вам два вопроса, я не могу помочь, если вы не ответите им. –

ответ

0

Без дальнейших знаний вашего кода, простой Javascript == сделает работу

var dishArray = [{ 
 
    _id: '0' 
 
}, { 
 
    _id: '1' 
 
}]; 
 
var ingredientsArray = [{ 
 
    _id: '0', 
 
    _dishID: '0' 
 
}, { 
 
    _id: '1', 
 
    _dishID: '1' 
 
}]; 
 

 
for (let dish of dishArray) { 
 
    dish['ingredients'] = []; 
 

 
    for (let ingredient of ingredientsArray) { 
 
    if (dish._id == ingredient._dishID) { 
 
     dish['ingredients'].unshift(ingredient); 
 
    } 
 
    } 
 

 
    console.log(dish['ingredients']); 
 
    console.log(dish); 
 
}

+0

получается, что это возвращенный объект мангуста, который не играет дружелюбно с мутациями. – softcode

+0

Тогда, возможно, вы могли бы попытаться использовать() или toObject() свой объект Mongoose, выполнив предоставленный ответ здесь: http://stackoverflow.com/questions/7503450/how-do-you-turn-a-mongoose-document-in-a-plain-object – rdlopes

+0

Yep 'lean()' решил. Скоро напишу об этом. – softcode

Смежные вопросы