如何在 JavaScript 中检查变量是否为数组

TL;DR

要检查一个 变量 是否为一个 数组,你可以使用 Array.isArray() 方法或 instanceof 运算符

let colors = ['red','green','blue'];

// #1: use Array.isArray
let isArray = Array.isArray(colors);
console.log(isArray); // true;

// #2: use instanceof operator
isArray = colors instanceof Array;
console.log(isArray); // true;Code language: JavaScript (javascript)

1) 使用 Array.isArray(variableName) 方法检查变量是否为数组

如果 variableName 是一个数组,则 Array.isArray(variableName) 返回 true。否则,它将返回 false

Array.isArray() 方法是检查变量是否为数组的推荐方法,因为它具有良好的浏览器支持。

以下是一些使用 Array.isArray() 方法的示例

const ratings = [1, 2, 3, 4, 5];
const vote = { user: 'John Doe', rating: 5 };
const str = "It isn't an array";

console.log(Array.isArray(ratings)); // true
console.log(Array.isArray(vote)); // false
console.log(Array.isArray(str)); // falseCode language: JavaScript (javascript)

2) 使用 instanceof 运算符检查变量是否为数组

由于所有数组都是 Array 类型的实例,因此可以使用 instanceof 来检查变量是否为数组,如下所示

variableName instanceof ArrayCode language: JavaScript (javascript)

如果 variableName 是一个数组,则表达式将返回 true。例如

const ratings = [1, 2, 3, 4, 5];
const vote = { user: 'John Doe', rating: 5 };
const str = "It isn't an array";

console.log(ratings instanceof Array); // true
console.log(vote instanceof Array); // false
console.log(str instanceof Array); // false
Code language: JavaScript (javascript)

总结

  • 如果 variableName 是一个数组,则 Array.isArray(variableName) 返回 true
  • 如果 variableName 是一个数组,则 variableName instanceof Array 返回 true
本教程对您有帮助吗?