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如何检测一个数据是否数组的主要内容,如果未能解决你的问题,请参考以下文章