Могу ли я использовать карту() внутри перемещаемого объекта?

# #json #firebase #firebase-realtime-database

Вопрос:

Я использую forEach для перебора массива объектов. В последнем («транс») Я хочу создать вложенный массив объектов, такой же, как моя база данных:

введите описание изображения здесь

Но у меня в коде ошибка:

 snap.forEach(childSnapshot => {
    allWorks.push({
        id: childSnapshot.key,
        link: childSnapshot.val().link,
        trans: childSnapshot.child('trans').map(childSnapshot => { lang: childSnapshot.key}) // <- error: childSnapshot.child(...).map is not a function
    })
})
 

Что я делаю не так?

Спасибо

Ответ №1:

DataSnapshot Тип Firebase не реализует map функцию, поэтому ваш childSnapshot.child('trans').map(...) не будет работать.

Эквивалентным рабочим кодом был бы:

 snap.forEach(childSnapshot => {
    cont trans = [];
    childSnapshot.child('trans').forEach((transChild) => {
      trans.push(transChild.key);
    })
    allWorks.push({
        id: childSnapshot.key,
        link: childSnapshot.val().link,
        trans: trans
    })
})