Tengo una matriz ordenada de libros con una propiedad llamada 'lugar'.
libro:
{ id : number, place: string }pero también tengo una serie de lugares con la propiedad 'nombre'
lugar
id: number, name: stringLo que me gustaría hacer es manipular la matriz de libros para que, en el orden exacto, la propiedad de lugar en un libro tome el valor del nombre del objeto de lugar.
el resultado debe ser:
booksArr[0] == placeArr[0].name booksArr[1] == placeArr[1].name booksArr[2] == placeArr[2].namey si la longitud de placeArr > booksArr, entonces debería ignorar el resto, no hacer nada con él.
¿Hay alguna manera ingeniosa de hacer eso?
book.forEach((_, ind) => { book[ind]["place"] = place[ind]["name"] });Qué tal si:
const books = [...] // Your array of books const places = [...] // Your array of places books = books.map((book) => ({ id: book.id, place: places.find((place) => place.id === book.place)) });Puede iterar y usar un cortocircuito para matrices desiguales.
placeArray.some(({ name }, i) => { booksArray[i].place = name; return i + 1 >= booksArray.length; });