【若川视野 x 源码共读】第33期 |不可缺少的数组转换工具-arrify

97 阅读1分钟

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集合转换为数组。