检测数组类型

面试时候被人问如何检测一个未知变量是不是数组类型,丢脸啊,老祖宗的脸都丢没了,这都不会,回家啃书本去吧!!!

var a = [];
方法一:Array.isArray([])  //true

typeof a 在这里是帮不上忙的呦,对于数组类型返回的是object,并且是对于除了函数以外的所有对象都是如此,心累吧,瞎忙活!

方法二:a instanceof Array  //true
但是不能视为一个可靠的数组检测方法。

方法三:检测对象的类属性,对于数组来说该属性的值总是‘Array’,

Object.prototype.toString()方法进行判断,因此isArray()函数的代码可以酱紫写

 var isArray = Function.isArray || function(o){
     return typeof o === ‘object‘ &&
     Object.prototype.toString.call(o) ===‘[object Array]‘;
 }

原文地址:https://www.cnblogs.com/tangjiao/p/8986696.html

时间: 2024-10-18 17:07:03

检测数组类型的相关文章

建议9:正确检测数组类型

由于数组和对象的数据同源性,导致在JavaScript编程中经常会出现:在必须数组时用了对象,在必须用对象时用了数组. typeof检测数组的类型时object,没有意义,所以这里可以通过自定义一个is_array函数来你部缺陷 var is_array = function(value){ return value && typeof(value) === 'object' && value.constructor === Array; } 但是,上面函数在识别从不同的窗

JavaScript学习笔记:检测数组方法

很多时候我们需要对JavaScript中数据类型( Function . String . Number . Undefined . Boolean 和 Object )做判断.在JavaScript中提供了typeof操作符可以对这些常用的数据类型做判断.但要使用typeof来判断数据是不是一个数组,就不起作用了.那在实际生产中要如何来检测数据是不是一个数组呢? 今天的学习任务就是如何来检测一个数据是不是数组? typeof操作符 typeof 可以解决大部分数据类型的检测,如: 1 cons

判断一个变量是数组类型的方法

在很多时候,我们都需要对一个变量进行数组类型的判断(借鉴) 学过js就应该知道typeof运算符返回字符串,该字符串代表操作数的类型(即返回数据类型)这是最常用的. 下面多种实现方式: JavaScript中检测对象的方法 1.typeof操作符 这种方法对于一些常用的类型来说那算是毫无压力,比如Function.String.Number.Undefined等,但是要是检测Array的对象就不起作用了. alert(typeof null); // "object" alert(ty

PHP检测数组中的每个值是否含有特殊字符

本文出至:新太潮流网络博客 /** * [TestArray 检测数组是一维还是二维] * @E-mial [email protected] * @TIME 2017-04-07 * @WEB http://blog.iinu.com.cn * @param [type] $array [数组] */ function TestArray($array){ if(is_array($array)){ foreach($array as $v){ if(is_array($v)){ $Int_A

js数组类型检测

一.typeof检测给定变量的数据类型: 语法:typeof 变量 未定义undefined:undefined boolean:boolean 字符串:string 数值:number 对象:object null:object 函数:function 数组(也是对象):object 二.instanceof 语法:变量 instanceof Array 如果是数组的话返回true,操作undefined和null会报错:检测其他类型的变量会返回false. 三.ECMAScript5新增了A

《JS权威指南学习总结--7.10 数组类型》

内容要点: 一.数组类型 判断它是否为数组通常非常有用.在ES5中,可以使用Array.isArray()函数来做这件事情: Array.isArray([]); //=>true Array.isArray({}); //=>false 二.类数组对象 JS数组的有一些特性是其他对象所没有的: 1.当有新的元素添加到列表中时,自动更新length属性. 2.设置length为一个较小值将截断数组. 3.从Array.prototype中继承一些有用的方法. 4.其类属性为"Arra

js面向对象编程:如何检测对象类型

在js中检测对象类型主要有三种,typeof,instanceof,constructor,这几种都可以检测对象的类型,但又有一定的区别.   1使用typeof检测对象类型. typeo作为最常用的检测类型的方法,返回字符串类型,具体使用如下: function testType(value) { var str=typeof(value); // alert(str); switch(str) { case 'undefined': // undefined类型 case 'object'

delphi 数组类型

数组类型 数组类型定义了一组指定类型的元素序列,在方括号中填入下标值就可访问数组中的元素.定义数组时,方括号也用来指定可能的下标值.例如,下面的代码中定义了一个有 24 个整数的数组: type    DayTemperatures = array [1..24] of Integer; 在数组定义时,你需要在方括号中填入一个子界类型的值,或者用两个有序类型的常量定义一个新的子界类型,子界类型指定了数组的有效索引.由于子界类型指定了数组下标值的上界和下界,那么下标就不必象 C.C++.JAVA

数据类型总结——Array(数组类型)

原文 简书原文:https://www.jianshu.com/p/1e4425383a65 大纲 前言 1.Array数组类型的相关概念 2.创建数组的基本方式有两种 3.检测某个变量是否是数组的方式 4.数组的遍历:for...in语句 5.数组的常用方法 前言 数据类型是每一种语言都需要掌握的内容,掌握每一种数据类型的使用是掌握这门语言必不可少的.而我也对数据类型写了一系列的博客,其中包含了对某一数据类型的概念的认识和理解以及常使用的方法.以下就是我对Array类型的一些认识和理解,希望能