Я успешно создал базу данных треков, используя этот код:
export async function loadData() {
let data = [];
MusicFiles.getAll({
id: true,
artist: true,
duration: true,
genre: true,
title: true,
fileName: true,
minimumSongDuration: 1000
}).then(async (tracksNOFILTER) => {
let results = await Promise.all(tracksNOFILTER)
let filterTracks = results
.filter((item) => item.path == '/storage/emulated/0/Test/Wake.mp3')
.map(({album, author, duration, fileName, genre, id, path, title}) => ({album, author, duration, fileName, genre, id, path, title}));
for (let i = 0; i < tracksNOFILTER.length; i++) {
let track = tracksNOFILTER[i];
console.log(track);
data.push({
id: track.id,
url: 'file://' + track.path,
artwork: track.cover,
duration: track.duration,
title: checkTitle(track.title, track.fileName),
artist: track.artist,
album: track.album,
genre: track.genre
});
}
}).catch(error => {
//
});
return data;
}
Когда я использую его без фильтрации, как в приведенном выше коде - все работает отлично. Isuue происходит, когда я хочу отфильтровать массив, возвращенный tracksNOFILTER
, используя:
for (let i = 0; i < filterTracks.length; i++) {
let track = filterTracks[i];
Результат, отображаемый console.log(track);
(а также для track.path et c.) В обоих случаях одинаков для значений, которые мне нужны.
data.push()
просто не работает при использовании отфильтрованных данных.