Development/ReactNative

[study] .map : array안에 object 형태로 추가하기 - 240111

mefd 2024. 1. 11. 22:37
728x90

@ map

- array에 object 넣기

문제 : 

const [images, setImages] = useState([]);

 

const images =

   res.assets.map( item => {

                const image= {

                            name:item.fileName,

                            type:item.type,

                            uri:item.uri

                 }

                return image

              })

 setImages([image]) // images가 빈 배열이라 바로 setImages에 담았고, 하나의 array가 되었다.

 

다만, 

기존에 있는 배열에 image를 추가하고 싶은 경우라면

const images =

   res.assets.map( item => {

                const image= {

                            name:item.fileName,

                            type:item.type,

                            uri:item.uri

                 }

                return image

              })

 setImages([image,... images])

이렇게 하게되면 map의 결과는 array를 return하기 때문에, images라는 array안에 array가 들어가게 된다.

- 원하는 결과 ) [ {}, {}, {}, {}, {}, {} ]

- 실행 결과   )  [ {}, {}, {}, [ {}, {}, {} ] ] 

 

 


>>해결 >>

1. return에서 바로 배열에 추가한다.

const images =

   res.assets.map( item => {

                const image= {

                            name:item.fileName,

                            type:item.type,

                            uri:item.uri

                 }

                return setImages([image,... images]) 

              })

2. concat을 사용한다.

const images =

   res.assets.map( item => {

                const image= {

                            name:item.fileName,

                            type:item.type,

                            uri:item.uri

                 }

                return image

            })

images.concat(setImages([image])) 

728x90