javascript如何检测一个数据是否数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript如何检测一个数据是否数组相关的知识,希望对你有一定的参考价值。

<!--
用instanceof检测,请看例子
-->
<html>
<script type="text/javascript">
var a=new Date();
var b=[1,2];
var s="hi";
var c=new Array();
var n=1;

if(a instanceof Array)

document.write("a"+"是数组<br />");

if(b instanceof Array)

document.write("b"+"是数组<br />");

if(s instanceof Array)

document.write("s"+"是数组<br />");

if(c instanceof Array)

document.write("c"+"是数组<br />");

if(n instanceof Array)

document.write("n"+"是数组<br />");

</script>
</html>
参考技术A var ary = new Array();

if (ary.__proto__.constructor==Array)
alert('yes');
else
alert('no');
参考技术B var arr = new Array();
console.log(arr.constructor === Array)
var arr2 = [];
console.log(arr2 instanceof Array)

JavaScript之检测数组或对象是否存在空值toLowerCasecallslicesplitstringifyindexOfprototypetoString

class IsType 
	constructor(type) 
		type = type || '';
		this.type = type.toLowerCase();
	
	checkType(obj) 
		let val = Object.prototype.toString.call(obj);
		val = val.slice(1, val.length - 1);
		val = val.split(' ')[1];
		val = val.toLowerCase();
		return val === this.type;
	
	matchString(obj) 
		let toStr = JSON.stringify(obj);
		return toStr.indexOf('') !== -1 || toStr.indexOf('[]') !== -1;
	
	rationality(obj) 
		if (this.checkType(obj) && !this.matchString(obj) && Object.keys(obj).length > 0) 
			return true;
		 else if (this.checkType(obj) && !this.matchString(obj) && obj.length > 0) 
			return true;
		 else 
			return false;
		
	


let a = new IsType('Array'),
o = new IsType('object');

console.log(a.rationality());
// false
console.log(a.rationality([7]));
// true
console.log(a.rationality([7, []]));
// false
console.log(o.rationality( id: 2, list: [6], l: [9] ));
// true
console.log(o.rationality( id: 2, list: [6], l: [] ));
// false

以上是关于javascript如何检测一个数据是否数组的主要内容,如果未能解决你的问题,请参考以下文章

如何检测变量是不是为数组

js如何判断变量的数据类型

javascript 检测传递的参数是否为数组

在Java中,如何检测一个数组中是不是包含某一个数据?

javaScript使用技巧

Javascript 常用类型检测