javascript数组到格式化字符串

时间:2013-08-05 14:44:09

标签: javascript

在javascript中,我有一个类似

的数组

psi=["www.google.com","www.facebook.com","www.collegehumor.com"]

我想将其转换为格式化的字符串,如

var final=<a href="www.google.com" target="_blank">www.google.com</a></br>,<a href="www.facebook.com" target="_blank">www.facebook.com</a></br>,<a href="www.collegehumor.com" target="_blank">www.collegehumor.com</a></br>

所以我可以从服务器发送到像

这样的客户端
//websockets, btw...
connection.send('Search Results'+t_name+'</br>Links'+final+'</br>');

它将只呈现工作链接。

这样的东西
www.google.com
www.facebook.com
www.collegehumor.com

我知道有toString()。但没有运气。我不能让它创建工作链接。

我尝试在for中实现connection.send,但Dreamweaver表示存在语法错误。这就是我尝试将数组转换为格式化字符串的原因。

有任何建议吗?

由于

3 个答案:

答案 0 :(得分:2)

var psi=["www.google.com","www.facebook.com","www.collegehumor.com"]
var str = '';
for(var i in psi)
{
    str += ',<a href="http://'+psi[i]+'" target="_blank">'+psi[i]+'</a><br>';
}
str = str.substr(1);

使用Zim84在上述评论中提到的string.link()方法的替代版本:

var psi=["www.google.com","www.facebook.com","www.collegehumor.com"]
var str = '';
for(var i in psi)
{
    var url = psi[i];
    str += ','+url.link('http://'+url)+'<br>';
}
str = str.substr(1).replace('">','" target="_blank">');

答案 1 :(得分:1)

var final = "";
for (var i = 0; i < psi.length; i++)
{
    var linkWithHttp = "http://" + psi[i];
    final += "<a href=\"" + linkWithHttp + "\" target=\"_blank\">" + psi[i] + "</a><br />,";
}

// Remove the last "," if you added, at least, one element
if (psi.length > 0)
{
    final = final.substring(0, final.length - 1);
}

// Now final is like what you want
// Send it using connection.send()

答案 2 :(得分:0)

如果你愿意使用jQuery,那就是小菜一碟:

var final = $.map(psi, function(link) {
  return '<a href="' + link + '" target="_blank">' + link + '</a>';
}).join('<br />,');