前端-数组合集

1.检测数组的几种方式

  1.Array.isArray(); es5
    
  2. instanceof Array
  3.arr.constructor//Array

​  4. toString.call([]);//”[object Array]

2.Array的常用方法


shift(); //删除并返回数组的第一个元素

unshift(); //向数组的开头添加一个或更多元素,并返回新的长度

pop(); 		//删除并返回数组的最后一个元素

push(); 	//向数组的末尾添加一个或更多元素,并返回新的长度

concat(); 	//连接两个或更多的数组,并返回结果

reverse(); 	//颠倒数组中元素的顺序

splice(); 	//删除元素,并向数组添加新元素

slice(); 	//从某个已有的数组返回选定的元素

等方法

3.如何区分数组和对象

1、从原型入手,Array.prototype.isPrototypeOf(obj); 
 利用isPrototypeOf()方法,判定Array是不是在obj的原型链中,
 如果是,则返回true,否则false。Array.prototype.isPrototype([]) //true

2、也可以从构造函数入手,利用对向的constructor属性

3、根据对象的class属性(类属性),跨原型链调用toString()方法。
Object.prototype.toString.call(Window);

4、Array.isArray()方法。

4.如何检测数组的数据类型

方法一、判断其是否具有“数组性质”,如slice()方法。
可自己给该变量定义slice方法,故有时会失效 
方法二、obj instanceof Array 在某些IE版本中不正确 
方法三、toString.call([]);//”[object Array]” 
方法四、

方法一二皆有漏洞,在ECMA Script5中定义了新方法Array.isArray(), 
保证其兼容性,
最好的方法如下:
 if(typeof Array.isArray==="undefined"){ 
 Array.isArray = function(arg){ 
 return Object.prototype.toString.call(arg)==="[object Array]"
 }; 
 }
发布了68 篇原创文章 · 获赞 0 · 访问量 1277

猜你喜欢

转载自blog.csdn.net/zmmsdk/article/details/104214144