Javascript:在循环中按循环拆分字符串
我有一个字符串,ID和名称之间用^(ID和名称之间)和分隔;(在集合之间)例如Javascript:在循环中按循环拆分字符串,javascript,jquery,loops,for-loop,split,Javascript,Jquery,Loops,For Loop,Split,我有一个字符串,ID和名称之间用^(ID和名称之间)和分隔;(在集合之间)例如 var string = "1^John Smith;2^Sophia Williams;3^Emily Johnson;"; 我需要像这样的东西 $('#1').html('<option value="1">John Smith</option><option value="2">Sophia Williams</option><option value="
var string = "1^John Smith;2^Sophia Williams;3^Emily Johnson;";
我需要像这样的东西
$('#1').html('<option value="1">John Smith</option><option value="2">Sophia Williams</option><option value="3">Emily Johnson</option>');
$('1').html('John SmithSophia WilliamsEmily Johnson');
我尝试了循环,但被卡住了:
var string = "1^John Smith;2^Sophia Williams;3^Emily Johnson;";
var a = string.split(";"),
i;
for (i = 0; i < a.length; i++){
if (a[i] !== ""){
var b = a[i].split("^"),
i2;
for (var i2 = 0; i2 < b.length; i++) {
var name = b[i2];
console.log(name);
}
}
}
var string=“1^John Smith;2^Sophia Williams;3^Emily Johnson;”;
var a=string.split(“;”),
我
对于(i=0;i
我不确定使用
新选项(文本、值、默认选定、选定)
var string=“1^John Smith;2^Sophia Williams;3^Emily Johnson;”
var options=string.split(“;”).map(i=>{
返回新选项(…i.split('^').reverse())
})
$('#1').html(选项)
通过从
b
中获取第一个元素作为选项值,从b
中获取第二个元素作为选项标记中的文本,可以在循环中构建HTML字符串。然后,您可以使用以下文本和值组件将选项标记的字符串HTML版本添加到for循环每次迭代的累积字符串中:
var string=“1^John Smith;2^Sophia Williams;3^Emily Johnson;”;
var a=string.split(“;”);
var html_str=“”;
对于(var i=0;i
您根本不需要内部循环。只需在需要的地方使用b[0]
和b[1]
来构造字符串。旁注:jQuery允许它,但#1
是无效的选择器。ID选择器不能以未替换的数字开头。尽管它在您的答案中使用的jQuery版本中似乎可以工作,但如果依赖于将选项
数组传递给html
,我会感到紧张,这似乎不是一种行为。@t.J.Crowder执行新选项(…I.split('^').reverse())
我甚至不知道它是如何与…@mplungjan一起工作的-这部分不是问题:它在^
处拆分字符串I
(例如,获取[“1”,“John Smith”]
),然后反转该数组,并将其作为选项的两个参数展开到构造函数(文本和值)。:-)啊。因为数组可以工作-我无法以一种我可以信任的方式来控制台.log(…I.split('^').reverse()),这是新选项所希望的