我有一个生成字符串的循环
function jsonResponse(response)
{
var singleString = a + "," + b + "," + c + "|";
}
console.log(singleString);
我看到它们都生成了:
a1,b1,c1|
a2,b2,c2|
a3,b3,c3|
但是如何创建一个新的变量allStrings
,将所有这些变量连接成一个字符串?循环是ajax响应的一部分,循环遍历xml节点以检索这些变量的数据。我想我需要让它们成为数组的一部分,然后将它们连接在一起形成一个大字符串?
进一步阐明我想要实现的目标是:
var allStrings = singleString[0] + singleString[1] + singleString[2] ;
a1,b1,c1|a2,b2,c2|a3,b3,c3|
为了更好地解释循环,它看起来像这样:
$j.ajax({
type: "GET",
url: "test.xml",
dataType: "xml",
success: function parseXml(data)
{
$j('.loader').fadeOut();
itemQueue = $j(data).find("ITEM").map( function ()
{
return {
date: $j("LAST_SCAN" , this).text(),
type : $j("PRODUCT_TYPE", this).text(),
cat : $j("CLASS_NAME", this).text(),
};
}).get();
getNextItem();
}
});
function getNextItem()
{
var item = itemQueue[0];
var singleString = item.date+ "," + item.type + "," + item.cat + "\n";
console.log( singleString );
$j.ajax({
url: s7query,
dataType: 'jsonp'
});
}
function s7jsonResponse(response)
{
var item = itemQueue.shift();
if (itemQueue.length)
{
getNextItem();
}
// run other processes when finished with checks
if (!itemQueue.length)
{
// alert ("ALL DONE");
}
}
答案 0 :(得分:14)
您可以使用Array.join
将数组转换为字符串。
示例:
var arr = ['a1', 'b1', 'c1'];
console.log(arr.join(',')); // 'a1,b1,c1'
答案 1 :(得分:2)
你可以摆脱那个循环并使用:
array.join(',')
其中array
是要转换为以逗号分隔的字符串的数组。
要将字符串连接在一起,您只需构建一个字符串连接:
allStrings.concat(string1, string2, ..., stringX)
答案 2 :(得分:0)
听起来您正在为独立的XML节点制作单独的XHR,在这种情况下,您可能需要重新考虑您的方法。如果可能的话,我会完整地迭代XML节点并收集所有必要的请求数据。然后你可以制作一个XHR(减少HTTP连接,这很好!)并得到一个可以包含整个响应的响应(即allStrings)。在您的服务器上应该更容易,并且在几乎所有情况下都会在客户端产生明显的差异。