admin管理员组文章数量:1431037
I have an array of strings that I want to render in a way that's one after the other with arrows in between as separators.
const folders = ["Folder 1", "Folder 2"]
So I tried the following code :
<div style={{display: "flex"}}>
{folders.map(folder => (
<p><i className='fa fa-folder'></i> {folder} <i className="fa fa-chevron-right"></i></p>
))}
</div>
What this does it put that arrow icon after every folder but i don't want it to put that arrow after the last folder. How do I fix?
I have an array of strings that I want to render in a way that's one after the other with arrows in between as separators.
const folders = ["Folder 1", "Folder 2"]
So I tried the following code :
<div style={{display: "flex"}}>
{folders.map(folder => (
<p><i className='fa fa-folder'></i> {folder} <i className="fa fa-chevron-right"></i></p>
))}
</div>
What this does it put that arrow icon after every folder but i don't want it to put that arrow after the last folder. How do I fix?
Share Improve this question asked Aug 2, 2021 at 6:36 user16516348user16516348 1179 bronze badges 1-
Map can take a second argument for index.
folders.map((folder, index) =>...
use the index to check if it is the last element to skip adding the arrow icon. – Coding Otaku Commented Aug 2, 2021 at 6:43
4 Answers
Reset to default 5With Array.prototype.map you can have access to the index of item of the array in which you are performing a map
<div style={{display: "flex"}}>
{folders.map((folder, index) => {
return (
<p key={index}>
<i className='fa fa-folder'></i>
{folder}
{index !== folders.length - 1 ? <i className="fa fa-chevron-right"></i>: null}
</p>
)
);
})}
</div>
As you can see I add a line which check if the current index in the map is equal to the length of the folders
and if is not the case the closing chevron is display otherwise it is not display.
Try:
<div style={{display: "flex"}}>
{folders.map((folder, key) => (
<p><i className='fa fa-folder'></i> {folder}
{index !== (folders.length - 1) ? <i className="fa fa-chevron-right"></i> : ''} </p>
))}
</div>
You can use the index
parameter of the map
function e.g.
<div style={{display: "flex"}}>
{folders.map((folder, index) => (
<p><i className='fa fa-folder'></i> {folder}
{index < folders.length -1 && <i className="fa fa-chevron-right"></i>}
</p>
))}
</div>
Make use of index and array length.
<div style={{display: "flex"}}>
{folders.map((folder, index) => (
<p><i className='fa fa-folder'></i> {folder} {folders.length-1 !== index && <i className="fa fa-chevron-right"></i>}</p>
))}
</div>
本文标签: javascriptHow to remove separator icon for last array mapStack Overflow
版权声明:本文标题:javascript - How to remove separator icon for last array map? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745563193a2663597.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论