基本上,我需要转换一个字符串
"23423,1616,3461743,1345"
到字符串
"<img src='23423'></img><img src='1616'></img><img src='3461743'></img><img src='1345'></img>
到目前为止,我已经尝试过:
var PhotoArray=JSONeventobject.Events[i].FileNameArray.split(","); // Just convert this string to array
for (i = 0; i < PhotoArray.length; i++) {
PhotoArray[i] = "<img src='"+PhotoArray[i]+"</img>";
}
var Photostring = PhotoArray.toString().replace(",", "")
但是这会导致我的浏览器崩溃。这对我来说很有意义:/
答案 0 :(得分:14)
这里有一些可怕的答案。尝试:
"1,2,3,4".split(",").map(function(a) { return "<foo>" + a + "</foo>"; }).join("");
答案 1 :(得分:3)
您需要确保关闭图片代码。可能导致问题的另一件事是i
未定义。您的浏览器是否提供错误消息?
var str = "23423,1616,3461743,1345";
var PhotoArray = str.split(",");
for ( var i = 0; i < PhotoArray.length; i++ ) {
PhotoArray[i] = "<img src=\"" + PhotoArray[i] + "\"></img>";
}
str = PhotoArray.join("");
答案 2 :(得分:1)
HTML中没有</img>
标记,因此您不需要。
在PhotoArray[i] = "<img src='"+PhotoArray[i]+"</img>";
中,您没有结束图片代码,这会产生<img src='1616</img>
,这就是为什么它会产生奇怪的结果。请改为PhotoArray[i] = "<img src='"+PhotoArray[i]+"'>";
。
答案 3 :(得分:1)
如果您不想使用循环(我不想使用循环),您可以这样做:
var str = "23423,1616,3461743,1345";
str = ("," + str + ",").split(',').join("'></img>,<img src='").split(",").slice(1,-1).join('');
console.log(str);
它正在做的是在列表的任一侧添加逗号,将字符串拆分为基于这些逗号的数组,然后在连接调用的两侧添加img标记,再次根据打开img之间的命令进行拆分标记和关闭我们刚刚放入的img标记,刻录数组中的第一个和最后一个元素,然后最后将它们全部连接成一个字符串。
控制台输出是:
<img src='23423'></img><imgsrc='1616'></img><img src='3461743'></img><img src='1345'></img>
没有什么比丑陋的单线解决方案好了!
答案 4 :(得分:0)
除了@mikel所说的 -
您使用相同的变量i
作为JSONeventobject.Events
的索引以及PhotoArray
的索引。没有看到你的其余代码,我不知道这是否会成为一个问题,但值得检查。
此外,不是转换为数组而是返回,而只是写一下似乎更简单:
var Photostring = "<img src='" + JSONeventobject.Events[i].FileNameArray.replace(/,/g, "'/><img src='") + "'/>";
(也就是说,将所有逗号替换为'/><img src='
,在第一个元素的<img src='
前面添加前缀,并追加最后一个元素的'/>
。)
答案 5 :(得分:0)
变量“i
”是否声明为var
?
答案 6 :(得分:0)
#1 str.split([separator[, limit]])
分裂功能 将字符串拆分为数组 基于我们给出的分隔符。限制是可选的。
#2 arr.map(callback[, thisArg])
地图功能 返回新数组 形成了 从结果 调用“回调”功能 对于“arr”中的每个元素。 thisArg是可选的。
#1 str.split([separator[, limit]])
加入功能 将数组的所有元素连接成一个字符串。限制是可选的。
所以,回答是:
var photoString = "23423,1616,3461743,1345";
var photoArray = str.split(",").map(
function(a) {
return '<img src="' + a + '"></img>';
}
).join("");
来源: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/split https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/map https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/join