The away side opened the scoring in the 30th minute when Fabian Balbuena poked in the rebound from close range, after his initial header bounced off the post.
Eight minutes later, Mark Noble was sent off for a challenge on Ndidi.
The momentum swung in Leicester's favour, and Harry Maguire's header hit the crossbar before half-time substitute Jamie Vardy headed narrowly over.
But Ndidi equalised when his long-range shot looped in via a deflection off Balbuena, before West Ham almost snatched victory on the counter-attack, when Angelo Ogbonna fired over.
West Ham move up to 13th with the draw, leaving them five points and one place below the Foxes.
See: West Ham report
Leicester: 3 Nov v Cardiff (A)
West Ham: 3 Nov v Burnley (H)