मैं वास्तव में जेएस के लिए नया हूँ। ऐसा करने में असमर्थ:

"polygonCoordinates": [
            "(3.0, 0.0)",
            "(3.0, 5.0)",
            "(8.0, 12.0)",
            "(3.0, 0.0)"
        ],

में परिवर्तित करने की आवश्यकता है:

polyCoords : [
        { lat: 3.0, lng: 0.0 },
        { lat: 3.0, lng: 5.0 },
        { lat: 8.0, lng: 12.0 },
        { lat: 3.0, lng: 0.0  }
      ]
-1
lokesh kumar 1 अक्टूबर 2021, 08:43
क्या यह किसी वस्तु के अंदर है? आपके पास " polytgonCoordinates के आसपास कैसा है?
 – 
Sinan Yaman
1 अक्टूबर 2021, 08:52

4 जवाब

सबसे बढ़िया उत्तर
const data = {"polygonCoordinates": [
            "(3.0, 0.0)",
            "(3.0, 5.0)",
            "(8.0, 12.0)",
            "(3.0, 0.0)"
        ]}
        
const mapped = {polyCoords: data["polygonCoordinates"].map(d => {
   const splitted = d.split(/[(,)]/)
   return {lat: parseFloat(splitted[1]), lng: parseFloat(splitted[2])}
})}

console.log(mapped)
1
Sinan Yaman 1 अक्टूबर 2021, 08:57

मान निकालने के लिए रेगुलर एक्सप्रेशन का उपयोग करते हुए, एक map() ऑपरेशन, और parseFloat() स्ट्रिंग्स को संख्याओं में बदलने के लिए:

const data = {
  "polygonCoordinates": [
    "(3.0, 0.0)",
    "(3.0, 5.0)",
    "(8.0, 12.0)",
    "(3.0, 0.0)"
  ]
};

const result = {
  polycoords: data['polygonCoordinates'].map(s => {
    const [_, x, y] = s.match(/\((.+?), (.+?)\)/);
    return { lat: parseFloat(x), lng: parseFloat(y) };
  })
};

console.log(result);
1
Robby Cornelissen 1 अक्टूबर 2021, 09:05

Array.map 1 के साथ regex: /\((.+)\,(.+)\)/ आपकी समस्या का समाधान कर सकता है।

const input = {
  "polygonCoordinates": [
    "(3.0, 0.0)",
    "(3.0, 5.0)",
    "(8.0, 12.0)",
    "(3.0, 0.0)"
  ]
};

const str = `(3.0, 0.0)`;
let m;

const regex = /\((.+)\,(.+)\)/;

let finalResult = {};
finalResult.polyCoords = input.polygonCoordinates.map(item => {
   let result = {};
   if ((m = regex.exec(item)) !== null) {
      result.lat = parseFloat(m[1].trim());
      result.long = parseFloat(m[2].trim());
   }
   return result;
});

console.log(finalResult);
1
Tartarus 1 अक्टूबर 2021, 09:05
1
कोई बात नहीं, अपवोट करें :)
 – 
Robby Cornelissen
1 अक्टूबर 2021, 09:07
const arr = [
"(3.0, 0.0)",
"(3.0, 5.0)",
"(8.0, 12.0)",
"(3.0, 0.0)"
];
var polycords = [];
arr.forEach(item=>{
    const lat = item.split(',')[0].replace('(','');
    const lng = item.split(',')[1].replace(')','');
    polycords.push({lat,lng}); 
})
0
Moukim hfaiedh 1 अक्टूबर 2021, 08:49