Can someone please tell me the pros and cons of each and which one is better
The 1700X, is on a consumer/value platform. 16 PCIE lanes hosted by the CPU and dual channel memory.
The i7-6800K is on an enterprise/high-end-desktop platform with more PCIE lanes and quad channel memory.
In practice, for a 6800K, the quad channel memory doesn't do anything for performance scaling except in synthetic benchmarks, and since it is limited to 24 PCIE lanes instead of the usual 40, it doesn't offer much more connectivity. (multi-GPU will still be at 8X8X).
So, the way this shakes out, is that we wind up paying a big platform price premium for the 6800K for a lot of traces on the motherboard that the CPU and the intended use likely won't benefit from.
AMD's approach here with Ryzen, has changed the whole envelope of what we thought was going to be the norm for consumer platforms, and in effect, exploited the value problem that the X99 platform has had for quite awhile.
This is cool, means you can have high-end-desktop / enterprise / workstation class compute power on a ~$100 motherboard, and from CPU's as inexpensive as ~$330.
So which one is better?
The 1700X nips at the heels of the 6900K in many heavily threaded workloads. In workloads that aren't well optimized for Ryzen (poorly threaded and/or not compiled with proper granularity and/or instruction optimizations for the architecture), performance can be more like an older i7-2600K.
I believe the areas where Ryzen isn't performing really well, are apt to see developer attention in the coming months/years, as this is not another "faildozer". This is a very competitive architecture with excellent compute efficiency and density right out of the gate. It is going to gain market share, and as a result, will get optimization attention that bulldozer didn't.
I think the 1700X is the better value option and it will only get better as software is optimized for it.