javascript - 将值与字符串分开

标签 javascript jquery

我有 2 个这样的字符串

var a= '12,13,14,15,16';
var b='p,q,q,p,q';

我只需要这样 12,15 代表 p 13,14,16代表q

如何在 Jquery/javascript 中执行此操作。

最佳答案

<罢工>

<罢工>
var a = '12,13,14,15,16';
var b = 'p,q,q,p,q';
var as = a.split(",");
var bs = b.split(",");

if(as.length == bs.length)
{
  var map = {};
  for(var i = 0; i < as.length; ++i)
  {
    var asv = as[i];
    var bsv = bs[i];
    map[asv] = bsv;
  }
  console.log(map['13']); //q
}

或者:

var a = '12,13,14,15,16';
var b = 'p,q,q,p,q';
var as = a.split(",");
var bs = b.split(",");

if(as.length == bs.length)
{
  var map = {};
  as.map(function(asv,idx){
    return {asv:asv, bsv:bs[idx]};
  })
  .forEach(function(x){
    map[x.asv] = x.bsv;
  });
  console.log(map['13']); //q
}

<罢工>

为了回答您的评论,也许这样的东西会更好:

var a = '12,13,14,15,16';
var b = 'p,q,q,p,q';
var as = a.split(",");
var bs = b.split(",");

if(as.length == bs.length)
{
  var map = {};
  as.map(function(asv,idx){
    return {asv:asv,bsv:bs[idx]};
  })
  .forEach(function(x){
    if(!map[x.bsv])
    {
      map[x.bsv]=[];
    }
    map[x.bsv].push(x.asv);
  });
  console.log(map['q']); //["13", "14", "16"]
  console.log(map['q'].join(",")); //"13,14,16"
}

关于javascript - 将值与字符串分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27058957/

相关文章:

javascript - 在十字图标和 HTML 正文单击上禁用花式框关闭功能

javascript - 在 Canvas 上使用 Dojo DND 时,在 Chrome 中获取 xy 坐标时出现问题

javascript - 通过jsPDF的addHTML向PDF添加多个元素

jquery - 使用 jQuery 在设定时间后更改文本颜色,并无限重复

javascript - 无法使用 ng-show 和 ng-hide 上传相同的图像

javascript - 不在 jquery 中触发事件

javascript - 在 Highcharts 中使用 pointPadding 更改条形宽度

javascript - 如何在 JavaScript 中将数组对象转换为数组转置数组?

javascript - 如何使用 jsrsasign 获取证书来验证我的 RSA 数字签名?

jquery - div 内可调整大小的 div