- 本文参加了由公众号@若川视野 发起的每周源码共读活动, 点击了解详情一起参与。
- 这是源码共读的第33期,链接:arrify 转数组
Arrify 是什么?
当我们在写代码的时候,是否经常接触到数组?数组是数据结构中一种比较重要的结构,如何安全有效的生成一个数组呢?
// 输入 'a'
得到
// [’a']
const arr = arrify('a')
像这样给一个对象加入一个length的属性就将一个对象变成了类数组。那么如何将类数组转换为数组呢?
Arrify 将类数组转换为数组
import arrify from 'arrify';
console.log(arrify('a'));
Arrify 源码
export default function arrify(value) {
if (value === null || value === undefined) {
return [];
}
if (Array.isArray(value)) {
return value;
}
if (typeof value === 'string') {
return [value];
}
if (typeof value[Symbol.iterator] === 'function') {
return [...value];
}
return [value];
}
Arrify 的源码很好理解,使用了JavaScript中Array的能力,以及数组本身就是一个迭代器的本质。
总结
这一期的能容比较简单,通过使用arrify可以将一个字符或一个数组或一个Set集合转换为数组。