Saltar al contenido

Cómo comprobar si un array contiene otro array?

Después de observar en varios repositorios y sitios webs de internet al terminar hemos descubierto la resolución que te compartimos aquí.

Solución:

Corto y fácil, ensartar el array y comparar como cadenas

function isArrayInArray(arr, item)
  var item_as_string = JSON.stringify(item);

  var contains = arr.some(function(ele)
    return JSON.stringify(ele) === item_as_string;
  );
  return contains;


var myArray = [
  [1, 0],
  [1, 1],
  [1, 3],
  [2, 4]
]
var item = [1, 0]

console.log(isArrayInArray(myArray, item));  // Print true if found

consulta alguna documentación aquí

un anidado array es esencialmente un 2D array, var x = [[1,2],[3,4]] sería un 2D array ya que lo referencia con 2 índices, por ejemplo x[0][1] sería 2.

En su pregunta, podría usar un bucle simple para saber si están incluidos, ya que esto no es compatible con matrices complejas:

var x = [[1,2],[3,4]];
var check = [1,2];
function isArrayInArray(source, search) 
    for (var i = 0, len = source.length; i < len; i++) 
        if (source[i][0] === search[0] && source[i][1] === search[1]) 
            return true;
        
    
    return false;

console.log(isArrayInArray(x, check)); // prints true

Actualización que representa cualquier longitud array

function isArrayInArray(source, search) 
    var searchLen = search.length;
    for (var i = 0, len = source.length; i < len; i++) 
        // skip not same length
        if (source[i].length != searchLen) continue;
        // compare each element
        for (var j = 0; j < searchLen; j++) 
            // if a pair doesn't match skip forwards
            if (source[i][j] !== search[j]) 
                break;
            
            return true;
        
    
    return false;

console.log(isArrayInArray([[1,2,3],[3,4,5]], [1,2,3])); // true

No puedes hacer eso. Instancia que tienes que hacer algo por tu cuenta.. primero tienes que hacer un foreach desde tu array que desea buscar y ejecutar la función 'compareArray' para cada elemento de su array .

function compareArray( arrA, arrB )

    //check if lengths are different
    if(arrA.length !== arrB.length) return false;


    for(var i=0;i

Sección de Reseñas y Valoraciones

Si posees alguna indecisión o disposición de aclararse nuestro artículo eres capaz de ejecutar una explicación y con deseo lo estudiaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *