To, co chcesz zrobić to są chyba elementarne podstawy.
const arr = ['aa','bb','abc'];
String.prototype.my_meth = function(arg) {
let get_x_chars = this.substring(0,arg);
return get_x_chars;
}
for(var i=0; i<arr.length;i++) {
let quantity_chars = 1;
let compare_letters = 'a'.repeat(quantity_chars);
if(arr[i].my_meth(quantity_chars) === compare_letters) {
console.log('I found letter "' + compare_letters + '" about length ' + quantity_chars + ' from ' + arr[i] + '.');
} else {
break;
}
}
https://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/
Edition:
Przykład z generatorem:
function* generator_x() {
yield [ "a" , 0 ];
yield [ "a" , 0 ];
yield [ "b" , 0 ];
yield [ "c" , 0 ];
yield [ "a" , 0 ];
yield [ "e" , 0 ];
yield [ "f" , 0 ];
}
var g = generator_x();
var flag = true;
var temp2;
var result = [];
while(temp2 = g.next().value) {
if(flag == false) {
temp2[1]++;
}
if(temp2[0] == "a" || flag == true && i == 0) {
flag = true;
} else {
flag = false;
}
result.push(temp2);
}
Jeśli zmienna flag będzie ustawiona na false przed pętlą, to wtedy dla pierwszej iteracji wliczy wartość pierwszego yield'a. Ilustruje to poniższa "tabela":
flag przed pętlą równe:
false true
0: (2) ["a", 1] 0: (2) ["a", 0]
1: (2) ["a", 0] 1: (2) ["a", 0]
2: (2) ["b", 0] 2: (2) ["b", 0]
3: (2) ["c", 1] 3: (2) ["c", 1]
4: (2) ["a", 1] 4: (2) ["a", 1]
5: (2) ["e", 0] 5: (2) ["e", 0]
6: (2) ["f", 1] 6: (2) ["f", 1]
Chcesz chyba taki wskaźnik stworzyć na następny element w tablicy. Jeśli tak, to poczytaj o strukturach danych, m.in. o liście (list). Podsyłam przydatne odsyłacze (ang. links):
http://januszmarecki.com/StrukturyDanych.pdf
https://www.youtube.com/watch?v=_V7a1Gwuj5k