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

  由于数组和对象的数据同源性,导致在JavaScript编程中经常会出现:在必须数组时用了对象,在必须用对象时用了数组.

  typeof检测数组的类型时object,没有意义,所以这里可以通过自定义一个is_array函数来你部缺陷

var is_array = function(value){
  return value && typeof(value) === ‘object‘ && value.constructor === Array;
}

  但是,上面函数在识别从不同的窗口(window)或帧(frame)中构造的数组时会失败,要想准确地检测外部数组类型,还要进一步完善

var is_array = function(value){
  return Object.prototype.toString.apply(value) ===‘[Object Array]‘
}

原文地址:https://www.cnblogs.com/chorkiu/p/12092317.html

时间: 2024-10-03 08:00:32

建议9:正确检测数组类型的相关文章

检测数组类型

面试时候被人问如何检测一个未知变量是不是数组类型,丢脸啊,老祖宗的脸都丢没了,这都不会,回家啃书本去吧!!! var a = [];方法一:Array.isArray([])  //true typeof a 在这里是帮不上忙的呦,对于数组类型返回的是object,并且是对于除了函数以外的所有对象都是如此,心累吧,瞎忙活! 方法二:a instanceof Array  //true但是不能视为一个可靠的数组检测方法. 方法三:检测对象的类属性,对于数组来说该属性的值总是'Array', Obj

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

建议2:注意Javascript数据类型的特殊性---(3)正确检测数据类型

使用typeof预算符返回一个用于识别其运算数类型的字符串.对于任何变量来说,使用typeof预算符总是以字符串的形式返回一下6种类型之一 number string boolean object function undefined 需要注意的是,在使用typeof检测null时,返回的是"object",而不是"null".更好的检测null的方式其实很简单.下面定义一个检测值类型的一般方法: function type(o){ return (o === nu

正确使用PostgreSQL的数组类型

2014-03-03 10:10 佚名 开源中国编译 我要评论(0) 字号:T | T 在Heap中,我们依靠PostgreSQL支撑大多数后端繁重的任务,我们存储每个事件为一个hstore blob,我们为每个跟踪的用户维护一个已完成事件的PostgreSQL数组,并将这些事件按时间排序. AD:2014WOT全球软件技术峰会北京站 课程视频发布 在Heap中,我们依靠PostgreSQL支撑大多数后端繁重的任务,我们存储每个事件为一个hstore blob,我们为每个跟踪的用户维护一个已完成

delphi 数组类型

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

转载--编写高质量代码:改善Java程序的151个建议(第5章:数组和集合___建议65~69)

阅读目录 建议65:避开基本类型数组转换列表陷阱 建议66:asList方法产生的List的对象不可更改 建议67:不同的列表选择不同的遍历算法 建议68:频繁插入和删除时使用LinkList 建议69:列表相等只关心元素数据 回到顶部 建议65:避开基本类型数组转换列表陷阱 我们在开发中经常会使用Arrays和Collections这两个工具类和列表之间转换,非常方便,但也有时候会出现一些奇怪的问题,来看如下代码: 1 public class Client65 { 2 public stat