function fixCoordinates(coor){
    if(Array.isArray(coor[0])) return coor.map(fixCoordinates)
    return [coor[0], coor[1]]
}

const GeoJSON = require('./data/points_filtered_compact.json')

const json = GeoJSON .map(feature => {
    feature = {
        type: feature.type,
        properties: feature.properties,
        geometry: {
            type: feature.geometry.type,
            coordinates: feature.geometry.coordinates
        }
    }
    if(feature.properties.other_tags){
        const others = feature.properties.other_tags.split(',').reduce((obj, tag) => {
            const a = tag.split('=>').map(key => key.replace('"', '').replace('"', ''))
            obj[a[0]] = a[1] || ''
            return obj
        }, {})
        feature.properties = Object.assign({}, feature.properties, others)
    }
    return feature
})
json.forEach(feature => console.log(JSON.stringify(feature)))
@@ -24,18 +24,16 @@
 (coor)%7B%0A
-  
   if(Arr
@@ -85,18 +85,16 @@
 inates)%0A
-  
   return
@@ -219,18 +219,16 @@
 re =%3E %7B%0A
-  
   featur
@@ -233,20 +233,16 @@
 ure = %7B%0A
-    
     type
@@ -253,28 +253,24 @@
 ature.type,%0A
-    
     properti
@@ -297,20 +297,16 @@
 es,%0A    
-  
-  
 geometry
@@ -309,22 +309,16 @@
 etry: %7B%0A
-      
       ty
@@ -350,22 +350,16 @@
 ,%0A      
-    
-  
 coordina
@@ -396,20 +396,16 @@
 tes%0A
-    
     %7D%0A  
   %7D%0A
@@ -400,22 +400,18 @@
     %7D%0A  
-  %7D%0A  
+%7D%0A
   if(fea
@@ -439,28 +439,24 @@
 _tags)%7B%0A    
-  
-  
 const others
@@ -498,11 +498,32 @@
 lit(
-','
+/(%22%5B%5E%22%5D+%22=%3E%5C%22%5B%5E%22%5D+%22,?)/g
 ).re
@@ -543,22 +543,16 @@
 g) =%3E %7B%0A
-      
       co
@@ -631,22 +631,16 @@
 )%0A      
- 
-     
 obj%5Ba%5B0%5D
@@ -654,22 +654,16 @@
 %5D %7C%7C ''%0A
-      
       re
@@ -679,23 +679,15 @@
     
- 
-   
 %7D, %7B%7D)%0A
-    
     
@@ -755,22 +755,18 @@
 hers)%0A  
-  %7D%0A  
+%7D%0A
   return

use regex to split