Most people under 50 today will have 40+ year working careers. Do you really want 20-30 different employers over that time?
My personal experience is everyone has a different timer inside, and tends to change jobs on 1.5-2 year, 4-5 year, or 7-10+ year cycles. It is hard for people to break those cycles. Shorter cycles tend to be more performance-based; getting caught over-selling capabilities, and longer cycles are more complacency. People that do project-based work are a little different in rationale, but same kind of timers.
My advice is generally to leave a bad work environment quickly, but try to improve the work environment first before giving up.
As an employer, I avoid people that jump around because it is too expensive to recruit, train, bring people up to speed, and phase them out. If I don't think someone will be around for at least 3 years then they face an uphill battle.