javascript - 两个数组,根据第一个数组的重复值对第二个数组进行分组并形成一个字符串

标签 javascript arrays string

我有两个数组和一个字符串,如下所示

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

http://jsbin.com/kinefipalu/edit?html,js,output

关于javascript - 两个数组,根据第一个数组的重复值对第二个数组进行分组并形成一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151716/

相关文章:

javascript - 我最初尝试让默认路由在 ember 中工作时缺少什么?

javascript - 如果 xUnits 不是 dc.units.ordinal,条形图中的可点击条

javascript - 在 JavaScript 中批量删除 URL 中的查询字符串

c++ - 如果 delete[] p 失败会发生什么?

java - 在 Java 中创建列表的二维数组

php - 如何在php中从数据库中的数组中添加多行

javascript - bootstrap-wysiwyg 编辑器未显示

javascript - 给出一个原始数组和一个新数组,每个元素的值表示左边更大的元素的数量

python - 在 python 2.7 中删除之前和包括 _ 的字符

javascript - 如何添加相同参数中的字符串