NJ is deceptively diverse, much more so than people typically give it credit for. And it is also a wealthy, highly educated state, especially in the north, that demographically seems like a poor fit for Trump in retrospect.* The more downmarket, whiter south of the state moved towards Trump but was largely canceled out by the wealthier, more diverse areas in the north-central areas of the state. Trump still did well in more downmarket white areas in north Jersey, like SW Bergen County (especially relative to Romney, who did terribly there; e.g., Trump got 56% of the vote in Wallington, which had voted for Obama twice), but those areas aren't very representative of north Jersey as a whole.
*Just how strongly this is the case in the super-wealthy areas of North Jersey: Millburn, New Jersey voted 66% for Hillary Clinton (up from 55% for Obama four years ago), and even Alpine, New Jersey voted for the Democrat for the first time in... maybe forever, definitely a very long time. Same for Berkeley Heights, New Providence, Verona, Watchung, Bridgewater, Randolph, Bernards Township, Chatham Township (which was 62% Romney!)...
This is exactly right. People outside NJ typically underestimate how diverse and well-educated the state is, especially northern NJ. The Asian-American and Latino populations are both sizable, and both communities turned out for Clinton in strong numbers, though I do know Trump is apparently popular among some Hindu Indians for his supposed support of Modi,. My town is typically republican--voted for Christie twice-- but has a sizable Indian and Jewish population and is pretty well-educated, and went for Clinton 57-38.
I'm really interested by the stark divide between Northern and Southern NJ in terms of swing to trump/clinton. It seems that almost all northern countries sans Warren swung toward Clinton, while Trump ran up really surprising margins in Ocean, Cumberland, Salem Cape May and other. This could signal yet another major divide between North and South Jersey!