Método 1: utilizar Array.isArray()
Array.isArray() es una función incorporada que determina si un valor dado es una matriz. Devuelve un valor booleano, verdadero si el valor dado es una matriz; de lo contrario, devuelve falso.
Código de muestra:
const array = [1, 2, 3];
const notArray = 'not an array';
console.log(Array.isArray(array)); // 输出:true
console.log(Array.isArray(notArray)); // 输出:false
Método 2: utilizar el operador instancia de
El operador instancia de se utiliza para detectar si un objeto pertenece a una clase particular. En JavaScript, las matrices se definen por el tipo de matriz. Por lo tanto, podemos usar el operador instancia de para verificar si un valor es una matriz o no.
Código de muestra:
const array = [1, 2, 3];
const notArray = 'not an array';
console.log(array instanceof Array); // 输出:true
console.log(notArray instanceof Array); // 输出:false
Cabe señalar que el operador instancia de solo se puede usar para detectar si un objeto es una instancia de una clase específica, no para valores primitivos (como cadenas, números, etc.).
Método 3: utilizar Array.prototype.constructor
Los objetos de matriz en JavaScript heredan de Array.prototype. Cada matriz tiene un atributo de constructor que apunta al constructor Array() que creó la matriz. Por lo tanto, podemos determinar si un valor es una matriz verificando la propiedad del constructor de la matriz.
Código de muestra:
const array = [1, 2, 3];
const notArray = 'not an array';
console.log(array.constructor === Array); // 输出:true
console.log(notArray.constructor === Array); // 输出:false
Este enfoque funciona para todos los objetos, incluidas las clases personalizadas. Sin embargo, cabe señalar que cuando hay varios entornos de ejecución global, la propiedad del constructor puede anularse, por lo que los resultados pueden variar.
En resumen, aquí hay tres formas comunes de inspeccionar matrices en JavaScript. Usar Array.isArray() es el método más fácil y confiable, pero elija el método apropiado para detectar matrices de acuerdo con sus necesidades específicas.