我有两个数组 -
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"
请注意每行之间应该有分号。
答案 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是不错的选择。
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;