将多个字符串连接成一个字符串

时间:2012-01-04 20:15:19

标签: javascript arrays string

我有一个生成字符串的循环

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");
    }
}

3 个答案:

答案 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)。在您的服务器上应该更容易,并且在几乎所有情况下都会在客户端产生明显的差异。