2016-10-12 7 views
0

Я хочу добавить значения, связанные с arrayOpportunityCategory (массив, содержащий разделенные запятой строки и являющийся частью объекта JSON), новому объекту/массиву, если введенное пользователем значение находится в arrayOpportunityCategory.Как создать новый объект, если условие истинно?

До сих пор у меня есть это:

const category = _.forOwn(res.body, function(val, key){ 
     const arrayOpportunityCategory = val.category.split(" ") 
     if(arrayOpportunityCategory.indexOf(interest.raw) > -1){ 
     const suggestedOpportunity = [] 
     suggestedOpportunity.push(val) 
     } else { 
     console.log('Sorry, we have nothing of that sort.') 
     } 
    }) 

    } 
+0

Рассмотрите это: 'const предложилОбновить = []'. Каждый раз, когда вы это делаете, вы создаете новый пустой массив. Затем вы добавляете к нему значение, а затем, вуаля, ваш массив ушел. Как вы думаете, вы должны объявить 'suggestOpportunity', если хотите, чтобы он сохранялся? –

+0

Спасибо, что указал мне в правильном направлении! –

ответ

0
const suggestedOpportunity = [] 
const category = _.forOwn(res.body, function(val, key){ 
     const arrayOpportunityCategory = val.category.split(" ") 
     if(arrayOpportunityCategory.indexOf(interest.raw) > -1){  
     suggestedOpportunity.push(val) 
     } else { 
     console.log('Sorry, we have nothing of that sort.') 
     } 
    })  
    } 

возвещать suggestedOpprtunity array outside of your loop, иначе вы бы в конечном итоге, создавая новый массив для каждого iteration и, наконец, вы бы только последние значения.

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