如何在JavaScript中将可为数组或单个对象的值转为数组
解答
JavaScript没有专门的内置函数直接实现「将单个值或数组统一转为数组」的需求,不过你可以用两种方式高效实现复用:
1. 封装通用工具函数
这是最直观、可读性最高的方式,适合多次复用:
const ensureArray = (value) => Array.isArray(value) ? value : [value];
在你的函数里直接调用:
const foo = (x : Array<string> | string) => { const y = ensureArray(x); // 后续逻辑使用y即可 };
2. 利用Array.concat的特性简化代码
Array.prototype.concat有个特性:如果传入的是数组,会将数组元素合并到新数组;如果传入的是非数组值,会直接把该值作为元素加入数组。可以用一行代码实现:
const y = [].concat(x);
比如:
- 当
x是字符串"hello"时,结果是["hello"] - 当
x是数组["a", "b"]时,结果是["a", "b"]
不过这种方式的可读性不如封装函数,如果你需要在多处使用,还是封装工具函数更便于维护。
内容的提问来源于stack exchange,提问作者Reza
相关产品推荐
相关产品推荐

