【发布时间】:2014-11-19 10:24:23
【问题描述】:
我很困惑试图解决这个问题。
1) 我有一个 PHP 数组,它是 JSON_ENCODE 存储在 JS 数组1中。
2) 然后是一个文本区域,输入被分割成一个 JS 数组2。
3) 然后将数组和 Slice & Concat 与从 array1 中扣除的值进行比较。
4) 然后将 array2 分块为 50 的 arraySize。
我面临的问题是我需要 50 个块在每个块的末尾有一个分号分隔每个值和另一个。
我以前使用过连接,但是 ';'被添加到数组中,我的 arraySize 被搞砸了。
非常感谢任何帮助。
//Store PHP values.
var ci_sites = <?echo json_encode($ci_pass);?>;
function dobuild(){
//Store textarea input into Array, Duplicates Removed.
var text = $("textarea#builder").val();
var lines = text.split(/\r\n|\s+\n|\s+\r|\n+|\r+/g);
var lines_arr = [];
$.each(lines,function(index, item){
if ($.inArray(item, lines_arr) ==-1)
lines_arr.push(item);
})
//Remove value from ci_sites.
var A1 = lines_arr;
var A2 = ci_sites;
for (var i = 0; i<A2.length; i++) {
var arrlen = A1.length;
for (var j = 0; j<arrlen; j++) {
if (A2[i] == A1[j]) {
A1 = A1.slice(0, j).concat(A1.slice(j+1, arrlen));
}
}
}
//Chunk The Array Into Sets Of 50.
var cleaned = A1;
var chunk = [];
var arraySize = 50;
for (var i = 0; i < Math.ceil(cleaned.length/arraySize); i++) {
chunk.push(cleaned.slice(i*arraySize,i*arraySize+arraySize));
var chunkbr = chunk.join("<br>");
$("#cleanlist").html("Cleaned CI's:<br><span style='color:#f00'>"+chunkbr+"</span>");
}*/
}`
@狡猾
存储在 ci_sites 中的值是:
111 222 333 444
lines_arr 中存储的值是:
111 222 333 444 555 666 777
输出将是:
555,666,777
chunk.join 在 for 中,因为它将块分成 50 个。
【问题讨论】:
-
你的 chunk.join 不应该在 for 之外吗?您是否有一个实际示例,其中包含 json 对象的内容以及输出应该是什么样的?
-
我在这里建立了一个例子:jsfiddle.net/nqruwfx9 什么不符合你的要求?
-
我正在寻找将 ',' 替换为 ';'最后添加一个。我在“var text”的小提琴中添加了更多的值,当它将它分成50我需要一个';'在每个块的末尾也。感谢您的帮助。
-
您正在将数组放入数组中,因此请替换: chunk.push(cleaned.slice(iarraySize,iarraySize+arraySize) ); with : chunk.push(cleaned.slice(iarraySize,iarraySize+arraySize).join(';') );
标签: javascript php arrays split