Alfabedeki bir harfin eşleşmelerini bir dizgedeki harflere sayan bir işlev yazmaya çalışıyorum. Daha sonra sayımı, sayı olarak bir ilişkilendirici diziye depolarım.String.match.length dönen dizi. Tam sayı değeri bekleniyordu.
Sorunum, string.match(regExpression) || [].length
dizisinin dönen bir dizidir. Benim beklentim, maçın uzunluğu ile eşleşen bir tamsayı değeri döndürecektir. String.prototype.match() yönteminin bir dizi döndürdüğünü biliyorum, ancak benim anlayışım (yöntemin biçimsel açıklamasına dayanarak) Sting.length'in bir sayı döndürdüğüdür.
Neyi yanlış yapıyorum?
function countLetters(string) {
//create array with letters of alphabet
var alphabet = "abcdefghijklmnopqrstuvwxyz".split("");
var counts = [];
for (i = 0; i < alphabet.length; i++) {
var regExpression = new RegExp(alphabet[i], "g");
counts[alphabet[i]] = string.match(regExpression) || [].length
}
return counts;
}
string.match' o zaman bir dizi döndürür başarılı 'Eğer
Eh' array' görmezden ve ihtiyacınız olduğunu bunun dışında 'value' seç. – John
Bence .length diziyi görmezden gelir ve bana aradığım değeri verirdi. @john Bunu nasıl önerirsin? – sharly