日期:2014-05-16  浏览次数:20465 次

遇到一个 JS 循环问题,求大家帮忙一下,谢谢。
已知一个 textarea 里面有以下代码。

颜色:红色,绿色
容量:50ml,100ml,160ml
产品产区:上海,广东
... ...

我需要获取文本框内容。把 颜色: 容量: 产区:分号前文字去掉。
然后把剩下的变成组合,例如组合为:

红色,50ml,上海    红色,50ml,广东   红色,100ml,上海    红色,100ml,广东   红色,160ml,上海    红色,160ml,广东   

绿色,50ml,上海    绿色,50ml,广东   绿色,100ml,上海    绿色,100ml,广东   绿色,160ml,上海    绿色,160ml,广东   

这样的组合,需要如何实现,谢谢。。
------解决方案--------------------
s = "颜色:红色,绿色\n容量:50ml,100ml,160ml\n产品产区:上海,广东";

a = s.split(/[\r\n]+/);
for(i=0; i<a.length; i++) {
  a[i] = a[i].split(/[:,]/).slice(1);
}
r = [];
b = a.shift();
for(i=0; i<b.length; i++) r.push([b[i]]);
p = 0;
while(b = a.shift()) {;
  len = r.length;
  for(; p<len; p++) {
    for(i=0; i<b.length; i++) {
      t = r[p];
      r.push(r[p].concat(b[i]));
    }
  }
}
r = r.slice(len);
for(i=0; i<r.length; i++) {
  document.write(r[i].join(',') + '<br>');
}
红色,50ml,上海
红色,50ml,广东
红色,100ml,上海
红色,100ml,广东
红色,160ml,上海
红色,160ml,广东
绿色,50ml,上海
绿色,50ml,广东
绿色,100ml,上海
绿色,100ml,广东
绿色,160ml,上海
绿色,160ml,广东