Search code examples
javascriptarraysgoogle-distancematrix-api

Convert array to pipe separated


How to convert array EX-["lat","long","abc","def","abcc","deef",] into [lat,long | abc,def | abcc,deef] in javascript.

I am facing issue with distance matrix Api...

Below is my code

export async function getStoreDistance(locationDetails) {
  destinationRequest = [];
  let destinationRequest = locationDetails.destinations.map(location => {
    console.log('destreqlocation', location);
    return `${location.lat},${location.long} `;
  });

  return await axios
    .get(
      `https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial
      &origins=${locationDetails.origins.map(function(locationDetail) {
        return locationDetail;
      })}
      &destinations=${destinationRequest}&key=**********`,
    )
    .then(function(response) {
      // handle success
      // return response;
    })
    .catch(function(error) {
      // handle error
      return error;
    });
}

Solution

  • My solution to the problem.

    const so1 = ["lat","long","abc","def","abcc","deef"]
    
    let result = so1
      .map((item, id, array) => ((id % 2) !== 0 && id !== (array.length - 1)) ? item + '|' : (id !== (array.length - 1)) ? item + '&' : item)
      .join('')
      .replace(/&/g, ',')
    
    console.log( result )
    console.log( `[${result}]` )