1

我正在寻找一种方法来解析这种性质的字符串:

r-g-b g

或者

g-g g g

或者

b g-g

等等

基本上,字母决定了要显示什么颜色的圆圈,以及圆圈-之间是否存在链接。

对于如何使用 JS/jQuery/HTML 开发一种有效的算法来做到这一点,我有点困惑。有任何想法吗?

4

2 回答 2

1

我不确定您要完成什么,但这是我最好的猜测:

var s = "r-g-b g";
var color = { 'r' : 'red', 'g' : 'green', 'b' : 'blue' };
s = s.split(''); //turn it into an array;

for (i=0; i < s.length; i++) {
    if (s[i]=='-') drawLink();
    else drawCircle(color[s[i]]); 
}

function drawCirlce(color) { 
   //your code for this 
}

function drawLink() { 
   //your code for this 
}
于 2013-05-01T07:30:15.477 回答
0

我能想到的最简单的答案是一次读取一个字符并按照指示进行操作。复杂之处在于(我假设)您需要先绘制下一个圆圈,然后才能绘制它们之间的链接:

var s = 'b-g r r b';
link = '';
for ( var i = 0; i < s.length; i++ ) {
  // `s.charAt(i)` gets the character
  // you may want to do a some jQuery thing here if you have that
  switch(s.charAt(i)) {
    case 'b':
      prev = drawCircle('b');
      if(link!='') {
         drawLink(link,prev);
         link = '';
      }
      break;
    case 'r':
      prev = drawCircle('r');
      if(link!='') {
         drawLink(link,prev);
         link = '';
      }
      break;
    case '-':
      link = prev;
      break;
  }
}
于 2013-05-01T07:37:07.560 回答