Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript:在循环中按循环拆分字符串_Javascript_Jquery_Loops_For Loop_Split - Fatal编程技术网

Javascript:在循环中按循环拆分字符串

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="

我有一个字符串,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="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()),这是新选项所希望的