[英]Looping through an array assigning values to anchor links
我有一個看起來像這樣的數組["1352.jpg", "1353.jpg", "1354"]
。 我想遍歷這個數組並渲染以逗號分隔的項目的錨鏈接。 我在看這樣的東西, <a href='1352.jpg'>1352.jpg</a>, <a href='1353.jpg'>1353.jpg</a>, etc
。 我似乎無法讓它工作。 這就是我正在做的,但我沒有得到我想要的。
var images = ["1352.jpg", "1353.jpg", "1354"];
renderImages(images){
var result;
if(images != null && images.length > 0){
result = images.map(obj => {
var res = '<a href='+obj+'>obj</a>';
});
result = res.join(', ');
}else{
result = 'null';
}
return result;
}
請問我在這里做錯了什么?
只需使用字符串插值,您的原始代碼缺少 map function 內的返回,並且您將obj
直接寫入內部標簽
var images = ["1352.jpg", "1353.jpg", "1354"];
renderImages(images){
if(!images || !images.length) {
return null;
}
return images.map(obj => `<a href='${obj}'>${obj}</a>`);
}
我還想知道您是否打算返回null
的文本版本或僅返回null
所以在我的回答中我返回null
。
看到 Emile 的評論后,您確實使用reactjs對其進行了標記,在這種情況下,您可能應該只渲染 jsx 節點,您可以這樣做:
return (
<div>
{ images && images.length && images.map( img => <a key={img} href={img}>{img}</a> )
</div> );
const images = ['image1_url', 'image2_url', 'image3_url']
const app = document.getElementById('app');
function renderImages() {
return images.map((link) => {
const a = document.createElement('a');
a.setAttribute('href', link);
a.innerText = link;
a.insertAdjacentText('beforeend', ', ');
app.appendChild(a);
});
}
renderImages()
首先想到的是這里缺少的 return 語句:
images.map(obj => {
var res = '<a href='+obj+'>obj</a>';
return res;
});
或者只是刪除 {} 和變量聲明。
images.map(obj => '<a href='+obj+'>obj</a>');
然后改變result = res.join(", ");
result = result.join(", ");
const imageHrefs = ["1352.jpg", "1353.jpg", "1354.png"]; const container = document.getElementById('container'); imageHrefs.forEach((href) => { const a = document.createElement('a'); a.setAttribute('href', href); a.innerText = `Link to ${href}`; container.appendChild(a); container.appendChild(document.createElement('br')); })
<div id="container"></div>
除了使用.map()
之外,您還可以使用其他解決方案。
這行得通,只需對您的 map 和 join 語句進行一些調整。
var images = ["1352.jpg", "1353.jpg", "1354"]; function renderImages(images) { var result; if(images.= null && images.length > 0){ result = images;map(obj => { return '<a href='+obj+'>obj</a>'; }). result = result,join('; '); }else{ result = 'null'; } return result. } list = renderImages(images) console.log(list)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.