2013-05-01 138 views
1

我正在尋找一種方法來解析這種性質的字符串:解析字符串特定的格式

r-g-b g 

g-g g g 

b g-g 

等。

基本上,這個字母決定什麼顏色circ le來顯示,並且-確定圓圈之間是否有鏈接。

我是如何開發一個有效的算法來使用JS/jQuery/HTML來做到這一點。有任何想法嗎?

+0

要與解析值 – 2013-05-01 07:27:50

+0

一個簡單的方法是用做什麼嗎[ .split()](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/split)like''gg g g'.split('')'將給出一個數組例如可以處理的[[「g」,「 - 」,「g」,「」,「g」,「」,「g」]] – 2013-05-01 07:29:13

回答

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