Typescript — доступ к массиву объектов внутри массива объектов

#angular #typescript

#angular #typescript

Вопрос:

У меня есть два объекта в массиве. Я перебираю объекты, как мне получить доступ к массиву объектов detail_feedback внутри определенного объекта (объект 1)?

   [{name:'myname',
        detail_feedback :[{question:'Qn1',answer:'Ans1'},{question:'Qn2',answer:'Ans2'},{question:'Qn3',answer:'Ans3'}]},
    {name:'yourname',
        detail_feedback :[{question:'Qn1',answer:'Ans1'},{question:'Qn2',answer:'Ans2'},{question:'Qn3',answer:'Ans3'}]},    
        ]
 

Любая помощь по этому вопросу высоко ценится ..!
Спасибо

Комментарии:

1. obj.detail_feedback должно сработать. Как только у вас есть ссылка на текущий объект в цикле.

2. К сожалению, это не сработало ..!

3. Если это не сработало, потому что у вас есть какая-то другая проблема, можете ли вы поделиться частью своего кода?

4. myArray[0].detail_feedback

Ответ №1:

Вы могли бы просто сделать:

 // import your json obj
import data from 'yourjson.json'

// iterate over the elements of the array
data.forEach(obj => {
  // access 'detail_feedback' prop of each object
  console.log(obj['detail_feedback'])
})
 

Комментарии:

1. Не помогло !!…. также попробовал —> for (пусть i = 0; i < this.myarray.length; i ) { console.log(‘i=>’ this.myarray[i][‘detail_feedback’])} … НЕ ПОВЕЗЛО ..!

Ответ №2:

Вам необходимо получить доступ к массиву по индексу:

 arr[0].detail_feedback
 

вернет detail_feedback по нужному вам индексу. Если вы хотите перебрать его и извлечь все обратные связи, используйте:

 const feedbacks = arr.map(item => item.detail_feedback) 
 

Ответ №3:

сначала получите первый уровень, а затем повторите с дочерними

 const data =  [{name:'myname',
        detail_feedback :[{question:'Qn1',answer:'Ans1'},{question:'Qn2',answer:'Ans2'},{question:'Qn3',answer:'Ans3'}]},
    {name:'yourname',
        detail_feedback :[{question:'Qn1',answer:'Ans1'},{question:'Qn2',answer:'Ans2'},{question:'Qn3',answer:'Ans3'}]},    
        ]
data.forEach( (element) => {
    element.detail_feedback = element.detail_feedback;
    console.log(element.detail_feedback)
   
    element.detail_feedback.forEach(item=>{
    item.question
    console.log(item.question, item.answer)
    })
    
});