我正在寻找一种方法来解析这种性质的字符串:
r-g-b g
或者
g-g g g
或者
b g-g
等等
基本上,字母决定了要显示什么颜色的圆圈,以及圆圈-
之间是否存在链接。
对于如何使用 JS/jQuery/HTML 开发一种有效的算法来做到这一点,我有点困惑。有任何想法吗?
我正在寻找一种方法来解析这种性质的字符串:
r-g-b g
或者
g-g g g
或者
b g-g
等等
基本上,字母决定了要显示什么颜色的圆圈,以及圆圈-
之间是否存在链接。
对于如何使用 JS/jQuery/HTML 开发一种有效的算法来做到这一点,我有点困惑。有任何想法吗?
我不确定您要完成什么,但这是我最好的猜测:
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
}
我能想到的最简单的答案是一次读取一个字符并按照指示进行操作。复杂之处在于(我假设)您需要先绘制下一个圆圈,然后才能绘制它们之间的链接:
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;
}
}