我有两个数组和一个字符串,如下所示
var str=offer?;
var names = [channelId, channelId, offerType, offerType, Language];
var values =[647, 763, international, programming, English];
两个数组的大小相同。
我需要形成一个字符串
final string = offer?channelId=647,763&offerType=international,programming&language=English
我需要在 JavaScript 中完成此操作。
我试过了,这是:
var namesMatched=false;
for(var i=0; i<names.lengthl; i++){
for(var j=i+1; j<names.length; j++){
if(names[i]==names[j]){
str=str+names[i]+"="+values[i]+","+values[j];
namesMatched=true;
continue;
}
else if(namesMatched){
str=str+"&";
i=names.length-j;
}
else{
str=str+names[i]+"="+values[i]+"&";
break;
}
}
}
但我没有达到预期。
感谢您的帮助。
最佳答案
这是我的解决方案,您不需要两个句子:
var str='offer?';
var names = ['channelId', 'channelId', 'offerType', 'offerType', 'Language'];
var values =[647, 763, 'international', 'programming', 'English'];
var last = '';
for (var i=0; i<names.length; i++) {
var name = names[i];
if (last === name) {
str+=','+values[i];
} else {
if (i !== 0) {
str+='&';
}
str+=name+'='+values[i];
}
last = name;
}
console.log(str);
关于javascript - 两个数组,根据第一个数组的重复值对第二个数组进行分组并形成一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151716/