當我嘗試var a = ar_url2.concat(ar_desc2);
將我的數組加入到數組中時,它返回null。我敢肯定這是微不足道的,但我花了幾個小時來解決這個問題,並解釋爲什麼發生這種情況會很好。在我的代碼波紋管我試圖while(ar_url2.length)a.push(ar_url2.shift());
,並返回相同的空...在JavaScript中合併數組無法正常工作
function agregar() {
var i = 0,
textarea;
var ar_desc = [];
while (textarea = document.getElementsByTagName('textarea')[i++]) {
if (textarea.id.match(/^desc_([0-9]+)$/)) {
ar_desc.push(textarea.id);
}
}
var desc_count_demo = document.getElementById('desc_count').value;
var desc_count = desc_count_demo - 1;
i = 0;
var ar_desc2 = [];
var campo = null;
while (i <= desc_count) {
campo = document.getElementById(ar_desc[i]).value;
ar_desc2[ar_desc[i]] = campo;
i++;
}
i = 0;
var input;
var ar_url = [];
while (input = document.getElementsByTagName('input')[i++]) {
if (input.id.match(/^url_([0-9]+)$/)) {
ar_url.push(input.id);
}
}
var url_count_demo2 = document.getElementById('url_count').value;
var url_count2 = url_count_demo2 - 1;
i = 0;
var ar_url2 = [];
while (i <= url_count2) {
campo = document.getElementById(ar_url[i]).value;
ar_url2[ar_url[i]] = campo;
i++;
}
// var a = Array.prototype.concat.call(ar_url2, ar_desc2);
while (ar_url2.length) a.push(ar_url2.shift());
function url(data) {
var ret = [];
for (var d in data)
ret.push(encodeURIComponent(d) + "=" + encodeURIComponent(data[d]));
return ret.join("&");
}
window.open('alta1.php?'+url(a));
}
編輯:如果我傳遞給函數的URL(ar_url2)或URL(ar_desc2)在URL中返回的值是
http://localhost/proj1/alta1.php?url_0=inpit&url_1=input
和
http://localhost/proj1/alta1.php?desc_0=input&desc_1=input
但還是不能都合併到一個...
提示:http://jsbeautifier.org/ – elclanrs
你可以添加一個小提琴嗎?其中一個陣列可能有畸形數據。 –