[study] .map : array안에 object 형태로 추가하기 - 240111
@ 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]))