как же никто не любит теорию почитать. Объявление переменной внутри функции приводит к тому, что как минимум в момент вызова клеарТаймаут ваш ключ неопределен, а следовательно даже, если бы был сеттаймаут вызван в else , эта операция не имелы бы никакого смысла. Хотя и решить проблему вашего кода это бы помогло.
читайте теорию.....
оцените подвох своего кода:
2
2
5
7
6
13
3
16
1
17
3
20
6
26
9
35
7
42
1
43
6
49
1
50
5
55
5
60
3
63
1
64
6
70
9
79
9
88
4
92
8
sI: undefined
100