Я редко пишу на явоскрипт
в первом случае у тебя одна глобальная переменная i.здесь нет глобальных переменных
повещенные 5 таймеров сработают через секундуну во-первых, автор с аргументами накосячил, так что ни о какой секунде речи не идет, а во-вторых таймер заданный на 1 секунду никогда не сработает ровно через секунду, ибо через секунду он будет только запланирован на выполнение.
например специальный модификатор finalв js есть const, который работает 1 в 1 как final в java, но это абсолютно не решает данную проблему, ибо i должна меняться по ходу выполнения.
harry999, это условие будет истинно при любомf ($(this).attr('id') !== 'aa' || $(this).attr('id') !== 'bb' || $(this).attr('id') !== 'cc') {
$(this).attr('id')
После этих слов, дальнейшие Ваши комментарии не стоят внимания. О-большое измеряет не сложность, а скорость.
какая сложность у такого редюса ?
[1,1,2,3,4,5,5,6,6,6,6,6,4,1,6,7].reduce((acc, item, i, arr) => { if (acc.has(item)) return acc; let idx = arr.indexOf(item); let lastIdx = arr.lastIndexOf(item); if (idx === lastIdx) { acc.add(item); }; return acc; }, new Set());