Kann ich das Argument "This" in der Funktion "typeScript -Array.Map () verwenden, um einen Zähler zu erhöhen?JavaScript

Javascript-Forum
Anonymous
 Kann ich das Argument "This" in der Funktion "typeScript -Array.Map () verwenden, um einen Zähler zu erhöhen?

Post by Anonymous »

Hier ist der Code, den ich zur Arbeit mache: < /p>

Code: Select all

const playlist = {
playlist_idea_uri: uri.toString(),
type: 'master'
}
const insertedPlaylistIdResponse = await db
.insertInto('playlist')
.values(playlist)
.onConflict((oc) => oc.doNothing())
.returning('id')
.executeTakeFirst()
let songs = masterPlaylist.songs.map((song) => {
return {
track_name: song.trackName,
track_mb_id: song.trackMbId,
album_artwork_ref: song.albumArtwork?.ref.toString(),
created_at: song.createdAt
}
})
const insertedSongIdsResponse = await db
.insertInto('song')
.values(songs)
.onConflict((oc) => oc.doNothing())
.returning('id')
.execute()
var position = 0
if (insertedPlaylistIdResponse?.id) {
const playlistItems = insertedSongIdsResponse.map((songIdResponse) => {
if (this !== undefined) {
return undefined
} else {
const newPosition = this + 1
return {
playlist_id: insertedPlaylistIdResponse.id,
song_id: songIdResponse.id,
position: newPosition
}
}
}, position)
await db
.insertInto('playlist_item')
.values(playlistItems)
.execute()
}
Ich möchte also im Grunde genommen ein Objekt in die Playlist -Tabelle einfügen, Songobjekte in die Tabelle Song einfügen, die resultierende ID s von Diese eingefügten Songs und die eingefügte Wiedergabeliste und für die ID für die einzelnen Songs zu einer Art Objekt, das ich dann in eine andere Tabelle namens Playlist_item wie folgt einfügen kann:

Code: Select all

const playlistItems = insertedSongIdsResponse.map((songIdResponse) => {
if (this !== undefined) {
return undefined
} else {
const newPosition = this + 1
return {
playlist_id: insertedPlaylistIdResponse.id,
song_id: songIdResponse.id,
position: newPosition
}
}
}, position)
Die Tabelle Playlist_item hat dieses Schema:

Code: Select all

export interface PlaylistItemTable {
id: Generated
playlist_id: number
song_id: number
position: number
}
Grundsätzlich ist ein PlaylistItem ein Lied in der Wiedergabeliste in einer bestimmten Position (wie der erste Song in der Wiedergabeliste hat Position = 1 , die nächste hätte Position = 2 usw.
Die Sache, auf die man sich konzentrieren muss, ist die Position Variable und ob ich den Parameter thisArg des Array.Map (Parameter des Array.Maps (verwenden kann ) Funktion Als eine Art Iterator, dass es jedes Mal, wenn es kartiert wird, auf der Grundlage der Art und Weise, wie ich es verwendet habe, möglich ist, oder funktioniert es nicht? Seien Sie undefiniert, aber ich bin mir nicht sicher, warum ich genau das überprüft habe, bevor ich versucht habe, es zu verwenden.
Jede Hilfe wird geschätzt!>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post