{"ScriptPreparationCode":null,"TestCases":[{"Name":"map \u0026 filter","Code":"const polygon = [\r\n { lat: 1, lng: 2 },\r\n { lat: 11, lng: 20 },\r\n { lat: 12, lng: 2 },\r\n { lat: 12, lng: 2 },\r\n];\r\npolygon.map(({ lat, lng }) =\u003E ([lat, lng]))\r\n .filter((curr, idx, arr) =\u003E {\r\n if (idx) {\r\n const prev = arr[idx - 1];\r\n return curr[0] !== prev[0] || curr[1] !== prev[1];\r\n }\r\n return true;\r\n });","IsDeferred":false},{"Name":"Map","Code":"const points = new Map();\r\nconst polygon = [\r\n { lat: 1, lng: 2 },\r\n { lat: 11, lng: 20 },\r\n { lat: 12, lng: 2 },\r\n { lat: 12, lng: 2 },\r\n];\r\n\r\npolygon.forEach(({ lat, lng }) =\u003E points.set(\u0060${String(lat)}${String(lng)}\u0060, [lat, lng]));\r\n","IsDeferred":false},{"Name":"reduce","Code":"const polygon = [\r\n { lat: 1, lng: 2 },\r\n { lat: 11, lng: 20 },\r\n { lat: 12, lng: 2 },\r\n { lat: 12, lng: 2 },\r\n];\r\nreturn polygon\r\n .reduce((acc, curr, index, polygon) =\u003E {\r\n const { lat, lng } = curr;\r\n if (index) {\r\n const prev = polygon[index - 1];\r\n if (lat !== prev.lat || lng !== prev.lng) {\r\n acc.push([ lat, lng ]);\r\n }\r\n }\r\n acc.push([ lat, lng ]);\r\n return acc;\r\n}, []);","IsDeferred":false},{"Name":"for","Code":"const polygon = [\r\n { lat: 1, lng: 2 },\r\n { lat: 11, lng: 20 },\r\n { lat: 12, lng: 2 },\r\n { lat: 12, lng: 2 },\r\n];\r\n\r\nconst polygonWithUniqPoints = [polygon[0]];\r\n\r\nfor(let i = 1; i \u003C polygon.length; i\u002B\u002B) {\r\n const { lat, lng } = polygon[i];\r\n const prev = polygon[i - 1];\r\n if (lat !== prev.lat || lng !== prev.lng) {\r\n polygonWithUniqPoints.push([ lat, lng ]);\r\n }\r\n}\r\nreturn polygonWithUniqPoints;","IsDeferred":false}]}