2013-07-02 42 views
-7

我有下面的字符串,需要在5个逗号分隔值后分成多个数组。然后我需要使用脚本将每个数组值赋给文本框值。我尝试了下面的代码来拆分并分配给数组,但不工作。有什么办法可以解决这个问题吗? <%=ab%>是包含以下代码的JavaScript变量。 “需要经过5逗号分隔值分为多个阵列”字符串到数组

[768.234.232, 768.234.232, 574,10-10-2012, 10-10-2012, 768.234.232, 768.234.232, 987, 10-10-2012, 10-10-2012]

function functionOne() { 
    var list = "<%=ab%>"; 
    var ab = new Array(); 
    var i = 0; 
    for (i = 0; i < 10; i++) { 
     ab[i] = list.split(",", 3); 
     alert(ab[i]); 
    } 
} 
+4

不错的家庭作业;) –

+0

如果值被引用,它将是简单的JSON。 – Spudley

+0

的值与[768.234.232,768.234.232,574,768.234.232,768.234.232,987]没有任何引号。但我的主要问题是分裂和分配到不同的阵列。 –

回答

1

你似乎在说,那里SULT应该是一个阵列,以在其五个值,然后第二个阵列,以在其未来五年值等。如果是这样,你可以做到以下几点:

var list = "<%=ab%>"; 
list = list.slice(1,-1);     // remove the enclosing [] 
var allValues = list.split(/\s*,\s*/); // split on comma with optional whitespace 
var a = []; 
for (var i = 0; i < allValues.length; i+=5) { 
    a.push(allValues.slice(i, i+5<=allValues.length ? i+5 : allValues.length)); 
} 

运行以上后,a将数组包含其他数组。 a[0]是前五项的数组,因此,例如a[0][2]是第三项。 a[1]是接下来的五个项目的数组。如果原始列表中有超过10个项目,则a[2]将是接下来的五个数组等等。如果项目总数不能被5整除,则最后一个数组将包含余数。

演示:http://jsfiddle.net/9xAxz/

“然后,我需要把每个数组值文本框的值”

嗯...这是否意味着每一个文本框项目?如果是这样,你为什么要在五个值后分开?你的意思是每个文本框五个项目?无论哪种方式,你在谈论动态创建文本框?如果是的话,你可以按照上面的代码是这样的:

var tb; 
for (i = 0; i < a.length; i++) { 
    tb = document.createElement('input'); 
    tb.value = a[i].join(", "); 
    document.body.appendChild(tb); 
} 

演示:http://jsfiddle.net/9xAxz/1/

如果我完全关闭基地在任何上述情况,以及......想想编辑问题使其更清晰。我想我应该在回答之前澄清一下,但请更新问题以显示您希望的输出内容。

+0

这就是我正在看的。非常感谢你。很少有人不明白这一点,只是把问题标记下来。再次感谢你。 –

+0

不客气。这个问题被低估的原因是,你真的不清楚你想要达到什么目的。我做了一些猜测,就像我喜欢认为他们是受过良好教育的猜测,我真的很幸运。 – nnnnnn

0
function functionOne() { 
    var list = "<%=ab%>".split(/,\s?/g); 

    for (var i = 0; i < list.length; i++) { 
     t = document.createElement('input'); 
     t.type = 'text'; 
     t.value = list[i]; 
     document.body.appendChild(t); 
    } 
} 
functionOne(); 

http://jsfiddle.net/WJPHt/1/

+0

768.234.232768.234.232574,10-10-201210-10-2012768.234.232768.234.23298710-10-201210-10-2012是上述代码的O/P @Samuel –

+0

@naveenkumar我是否错过了什么?您的评论不清楚。您的代码清楚地显示了输出中的方括号。 –

+0

塞缪尔谢谢你试图帮助我。是的,我想要的结果不是我想要的。 @nnnnnn完美地回答了我的问题。谢谢。 –