在前端开发中,经常会用到判断数组的功能,而isArrayish包就是用来判断是否为数组或类数组的一种工具库,它提供了简便的方式来进行数组的判断,同时也提供了基础的类型判断方法。
什么是isArrayish包?
isArrayish包是一个小巧的npm包,主要用于判断传入结果是否是数组或者是类数组,这种情况下常常使用Array.from将其转化为数组,它的使用起来也非常简单,只需要安装引入即可。
安装isArrayish包
你可以通过npm安装isArrayish包,只需要运行以下命令即可:
npm install is-arrayish --save
如何使用isArrayish包?
通过引入isArrayish包后,你可以使用以下方式调用它:
import isArrayish from 'is-arrayish';
如果你没有使用模块打包器,也可以在script标签中引入,代码如下:
<script src="path/to/is-arrayish.js"></script>
使用isArrayish包提供的函数判断传入值是否为数组或类数组,判断结果为布尔值。示例如下:
isArrayish([1,2,3]); // true isArrayish({0: 'a', 1: 'b', 2: 'c', length: 3}); // true isArrayish('abcdefg'); // false
除此之外,如果你想判断传入值的类型是否是null或undefined等基本类型,也可以使用以下方式:
import isBasicType from 'is-arrayish/isBasicType'; isBasicType(undefined); // true isBasicType(null); // true isBasicType(1); // true isBasicType(''); // true isBasicType({}); // false
isArrayish包的实现原理
isArrayish是通过判断对象是否包含length和数字索引属性的方式来判断是否为数组或类数组。如果对象同时存在这两个属性,则返回true。最终,它实现的代码类似于这样:
function isArrayish(obj) { if(!obj) return false; if(typeof obj.length === 'number' && (obj.length === 0 || obj.length - 1 in obj)){ return true; } return false; }
总结
isArrayish包是一个简单易用的工具库,通过判断length和数字索引属性,快捷地判断传入对象是否为数组或者类数组。在日常开发中,它可以节省我们大量的时间和精力,提高前端的开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/40061