es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir una matriz de … matrices y submatrices (y subsubmatrices) en una matriz simple en regex (¿a través de Javascript?)

Tengo la siguiente pregunta. Tengo matrices multidimensionales que me gustaría convertir en una sola dimensión, para poder recorrerlas como una matriz. He pegado todo el código en pastebin (https://pastebin.com/kitjY8CG).

Mi esperanza es tratar de hacer esto con regex. Sin embargo, tengo una idea limitada de cómo hacerlo … Lo más fácil sería hacer que regex seleccione todo lo que está entre paréntesis y lo convierta en una matriz al final. ¿Es esto posible?

[
[["https://www.website.be/set.aspx?Id=4589232","https://www.website.be/set.aspx?Id=4737287","https://www.website.be/set.aspx?Id=5054137","https://www.website.be/set.aspx?Id=4776617" [..] ],["https://www.website.be/set.aspx?Id=4899728" [..] ,"https://www.website.be/set.aspx?Id=2650424" "https://www.website.be/set.aspx?Id=3807271"]],[["https://www.website.be/set.aspx?Id=2834602 .. "https://www.website.be/set.aspx?Id=3807271"]],[[ …..

Gracias por la ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Solución para convertir un arreglo multidimensional en un arreglo unidimensional

    Para convertir un arreglo multidimensional en un arreglo unidimensional, puedes utilizar el método concat() en Javascript. Aquí tienes un ejemplo de código:

    var arregloMultidimensional = [
      [1, 2],
      [3, 4],
      [5, 6]
    ];
    
    var arregloUnidimensional = [].concat.apply([], arregloMultidimensional); 
    console.log(arregloUnidimensional); // impresión [1, 2, 3, 4, 5, 6]
    

    El método concat() se llama en un arreglo vacío [] y toma el arreglo multidimensional como argumento, aplanado con el método apply(). Esto da como resultado un arreglo unidimensional.

    Utilizando regex para seleccionar todo lo que está entre paréntesis

    Para seleccionar todo lo que está entre paréntesis utilizando regex, puedes utilizar el patrón /\(([^)]+)\)/. Aquí tienes un ejemplo de código:

    var texto = "El rápido (zorro marrón) salta (sobre) el perezoso (perro)";
    var patrón = /\(([^)]+)\)/g;
    var coincidencias = texto.match(patrón);
    console.log(coincidencias); // impresión ["(zorro marrón)", "(sobre)", "(perro)"]
    

    Se llama al método match() en la cadena texto con el patrón /\(([^)]+)\)/g. La bandera g indica que el patrón debe ser buscado globalmente. El patrón coincide con todo lo que está entre paréntesis y almacena el resultado en el arreglo coincidencias.

    Utilizando este conocimiento, puedes crear una función para convertir un arreglo multidimensional en un arreglo unidimensional y seleccionar todo lo que está entre paréntesis al mismo tiempo.

    function convertirYSeleccionar(arregloMultidimensional) {
      var arregloUnidimensional = [].concat.apply([], arregloMultidimensional);
      var patrón = /\(([^)]+)\)/g;
    
      // itera por el arreglo unidimensional y aplica el patrón regex a cada elemento
      for (var i = 0; i < arregloUnidimensional.length; i++) {
        var coincidencia = arregloUnidimensional[i].match(patrón);
        console.log(coincidencia); // imprime un arreglo de coincidencias entre paréntesis
      }
    
      return arregloUnidimensional;
    }
    
    // uso
    var miArreglo = [
      ["https://www.sitioweb.com/config.aspx?Id=4589232","https://www.sitioweb.com/config.aspx?Id=4737287"],
      [["https://www.sitioweb.com/config.aspx?Id=2834602"],["https://www.sitioweb.com/config.aspx?Id=3807271"]]
    ];
    
    var resultado = convertirYSeleccionar(miArreglo);
    console.log(resultado); // impresión ["https://www.sitioweb.com/config.aspx?Id=4589232", "https://www.sitioweb.com/config.aspx?Id=4737287", "https://www.sitioweb.com/config.aspx?Id=2834602", "https://www.sitioweb.com/config.aspx?Id=3807271"]
    

    La función convertirYSeleccionar() toma un arreglo multidimensional como argumento, lo convierte en un arreglo unidimensional y aplica el patrón regex a cada elemento. Las coincidencias entre paréntesis se almacenan en un arreglo y se devuelven al final.

Comments are closed.