在jquery中使用行分隔符连接两个数组

时间:2015-09-08 09:09:10

标签: jquery arrays

我有两个数组 -

        selectedGuids = $('.chkAllDates:checked').map(function () {
                             return $(this).attr('Guid');
                        })
                        .get();
        selectedUserNames = $('.chkAllDates:checked').map(function () {
                             return $(this).attr('userNames'); 
                        })
                        .get();

所以我选择了SelectedGuids和selectedUserNames数组。

现在我想将每列合并为逗号分隔,每行以分号分隔。

例如。

  - selectedGuids : Array[3]
     0: "1698E748-01F9-413B-9B84-E2BC4DD5AE53"
     1: "EFD318D5-FF83-41E8-A213-CD934E23AAEA"
     2: "C6382CA2-0EC7-41DC-A8B1-A3F234CB4EB9"
  - selectedUserNames : Array[3]
     0: "abc"
     1: "xyz"
     2: "pqr"

结果应该是这样的 -

var resultshouldbelikethis = "1698E748-01F9-413B-9B84-E2BC4DD5AE53, abc;EFD318D5-FF83-41E8-A213-CD934E23AAEA,xyz,C6382CA2-0EC7-41DC-A8B1-A3F234CB4EB9,pqr"

请注意每行之间应该有分号。

4 个答案:

答案 0 :(得分:2)

首先,拥有2个阵列只会让这件事变得痛苦。您可以使用map创建一个具有2个属性的对象数组,这些对象看起来像

{ guid: 'xxxxxxxx', userName: 'xyz' }

这样做:

var items = $('.chkAllDates:checked').map(function () {
                         return {
                            guid: $(this).attr('Guid'),
                            userName: $(this).attr('userNames')
                         };
                    }).get();

然后最后一点很简单,你只需要reduce

 var result = items.reduce(function(previousValue, currentValue){
    return previousValue + currentValue.guid + ',' + currentValue.userName + ';';
 });

另一种方法是为map中的每个项目形成字符串,然后只使用join

var items = $('.chkAllDates:checked').map(function () {
                         return $(this).attr('Guid') + ',' +  $(this).attr('userNames');
                    }).get();
var result = items.join(';');

答案 1 :(得分:1)

试试这个

function getFormatedString(ar1,ar2){
var str="";
for(var i=0;i<ar1.length;i++){
str=str+ar1[i]+","+ar2[i]+";";
}

return str.substring(0, str.length - 1);;
}



    selectedGuids = $('.chkAllDates:checked').map(function () {
                         return $(this).attr('Guid');
                    })
                    .get();
    selectedUserNames = $('.chkAllDates:checked').map(function () {
                         return $(this).attr('userNames'); 
                    })
                    .get();
 console.log( getFormatedString(selectedGuids,selectedUserNames));

答案 2 :(得分:1)

此代码可能有所帮助。

selectedDataArray = $('.chkAllDates:checked').map(function () {
                         return $(this).attr('Guid') + ',' + $(this).attr('userNames');
                }).get();

selectedDataString = selectedDataArray.join(";");

答案 3 :(得分:0)

在我看来,遵循一些标准对象模型总是更好,JSON是不错的选择。

&#13;
&#13;
var array1 = ["array1.value1","array1.value2" ]
var array2 = ["array2.value1","array2.value2" ]

var mergedArray = { array1 : array1, array2 : array2 };

document.getElementById("result").innerHTML = JSON.stringify(mergedArray);
&#13;
<div id="result"></div>
&#13;
&#13;
&#13;