2016-03-24 9 views
0

Uzun bir süre önce, kafamın etrafına dolanmam için bir soru sordum çünkü daha iyi daha hızlı daha az pahalı düşünebiliyordum bir noktaya yapmanın yolları. Ancak cevap ne istenen değildi, ne de% 100 kriterlere uymuyordu, bu yüzden bu soruya zaman zaman pasif bir şekilde düşündüğümden şaşkınım, birisi bana bunu nasıl temizleyebileceğimi göstersin mi?Başlangıca göre açıklıklı metin kaydırma: çok boyutlu dizide sayısal olarak verilen bitiş noktaları

[ 
    [0,6], 
    [10,19], 
    [21,40], 
    [8,25], 
    [75,100] 
] 

Ve bu dizeyi:

ı bir dizi var diyelim

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis id arcu pretium, fringilla ante a, elementum nulla. Maecenaların yerlisi libero vel interdum ultrices. Nulla viverra nulla mauris, nec lacinia ligula elementum nec. Mauris suscipit blandit nulla, eu scelerisque mauris egestas ornare. Quisque lorem velit, quam eget'de fermentum, sonuçta tincidunt.

Sonuç olmalıdır ..

<span>Lorem ipsum dolor sit amet, consectetur </span>adipiscing elit. Duis id arcu pretium, fringilla <span>ante a, elementum nulla</span>. Maecenas placerat libero vel interdum ultrices. Nulla viverra nulla mauris, nec lacinia ligula elementum nec. Mauris suscipit blandit nulla, eu scelerisque mauris egestas ornare. Quisque lorem velit, fermentum in quam eget, consequat tincidunt. 

Ve olmamak ...

<span>Lorem </span>ipsu<span>m dol<span>or si</span>t amet, consectetur </span>adipiscing elit. Duis id arcu pretium, fringilla ante a, elementum nulla. Maecenas placerat libero vel interdum ultrices. Nulla viverra nulla mauris, nec lacinia ligula elementum nec. Mauris suscipit blandit nulla, eu scelerisque mauris egestas ornare. Quisque lorem velit, fermentum in quam eget, consequat tincidunt. 

iyi yolu, onu işlemek için nedir yüzden herhangi örtüşen açıklıklı çoklu alanları sarma sırasında açıklıklı mı?

cevap

0

Dizileriniz dizileriniz, başlangıç ​​ve bitiş kelimeleriyle, sözcükler boşluklarla ayrılır. Tek garanti bu ise, bir dizi kelime almak için string.split(' ')'u kullanabilir ve dizilerin dizileriyle karşılaştırmak için dizinlerini kullanabilirsiniz.

Yani ..

var stringOfStuff = 'Hello My Name Is Rhys'; 
var spanStartAndEnds = [ [0, 1] ]; 
var words = stringOfStuff.trim().split(' '); 
//we have to trim or this wont work with split 

for(var i = 0; i < spanStartAndEnds.length; i++) { 
    for(var j = 0; j < spanStartAndEnds[i].length; j++) { 
    for(var x = 0; x < words.length; x++) { 
     if(x == j) { 
     //do something to add span. (maybe recurse with array input with new spans.) 
     } 
    } 
    } 
} 
İlgili konular