Dada la matriz 2D de fotos tomadas mientras John doe estaba de viaje, me piden que cambie el nombre de las imágenes y reemplace el nombre actual con el nombre de la city name donde se tomó una foto.
const photos = [ ['photo.jpg', 'kigali','2013-09-05 14:08:09'], ['demmpa.jpg', 'kigali','2013-09-05 14:08:09'], ['third.jpg', 'kibuye','2013-02-05 12:08:09'] ['forthpic.jpg', 'kampala','2013-02-05 12:08:09'] ] photos.map((photo, index)=>{ photo.filter((photo, index)=> console.log(photo)) })Salida real
"photo.jpg" "kigali" "2013-09-05 14:08:09" "demmpa.jpg" "kigali" "2013-09-05 14:08:09"Rendimiento esperado
kigali01.jpg kigali02.jpg Kibuye1.jpg kampala1.jpgPuedes hacerlo usando el map . Y la occurrence solo mantendrá el número de veces que se repite el nombre.
Nota: si necesita agregar ceros a la izquierda, consulte ¿Cómo generar números con ceros a la izquierda en JavaScript?
const photos = [ ['photo.jpg', 'kigali','2013-09-05 14:08:09'], ['demmpa.jpg', 'kigali','2013-09-05 14:08:09'], ['third.jpg', 'kibuye','2013-02-05 12:08:09'], ['forthpic.jpg', 'kampala','2013-02-05 12:08:09'] ]; const occurrence = {} const newArray = photos.map(arr => { const ext = arr[0].split('.')[1]; // file extension if (occurrence[arr[1]]) { // check whether the name is already there occurrence[arr[1]]++; return `${arr[1]}${occurrence[arr[1]]}.${ext}`; } occurrence[arr[1]] = 1; return `${arr[1]}1.${ext}`; }); console.log(newArray)let photos = [ ['photo.jpg', 'kigali','2013-09-05 14:08:09'], ['demmpa.jpg', 'kigali','2013-09-05 14:08:09'], ['third.jpg', 'kibuye','2013-02-05 12:08:09'], ['forthpic.jpg', 'kampala','2013-02-05 12:08:09'] ] photos = Array.from(photos).map((photo)=>{ const format = photo[0].split('.')[1] photo[0]=photo[1]+'.'+format return photo })