【发布时间】:2020-05-14 09:26:53
【问题描述】:
我正在创建一个导航栏并尝试在考虑到面向对象编程的情况下进行。
在我的导航栏上,我有社交图标,您可以点击这些图标与我联系。想法是只在我的对象中添加新的键和值,以便将来添加新的社交图标。
对于 navbar.socialLinks 的每个键和值,我想在每个附加的新图标上附加不同的 imgSrc 和链接值的 html。有没有聪明的方法来做到这一点?
提前谢谢你。
const navbar = {
"socialLinks": {
github: {
imgSrc: "assets/images/github_logo.png" ,
link: "https://www.github.com"
},
line: {
imgSrc: "assets/images/line_logo.png" ,
link: ""
},
linkedin: {
imgSrc: "assets/images/linkedin_logo.png",
link: "https://www.linkedin.com"
},
showLinks: function() {
let social = Object.values(navbar.socialLinks)
let imgSrc = [];
let socialLinks = [];
for(let values of social) {
imgSrc.push(values.imgSrc);
socialLinks.push(values.link);
}
imgSrc.pop(); // Remove the function from the Arrays
socialLinks.pop();
imgSrc.forEach(function() {
$('.social-icons').append
(`
<div class="item-social">
<a href="${socialLinks[0]}" target="_rel">
<img src="${imgSrc[0]}" alt="">
</a>
<div class="item-social-text">
<div class="underscore"></div>
<span class="open">Open</span>
</div>
`)
})
console.log(imgSrc);
console.log(socialLinks);
}
}
}
编辑:
我注意到我的问题得到了减分。在发布之前我做了很多研究,但对编程和 javascript 来说一般都是新手,并且在访问对象内部的数据方面没有做太多工作。从下面的问题中学到了很多。谢谢!
【问题讨论】:
标签: javascript arrays oop for-loop iteration