Lodash castArray函数没有什么特别之处。有没有什么方法可以在没有任何外部库的情况下使用最新的语言功能来解决这个任务,但仍然很快?如果您不熟悉该任务:castArray(['abc', 'def'])// ['abc', 'def']castArray('abc')// ['abc']castArray()// []castArray(undefined)// [undefined]有没有办法在没有类型检查的情况下做到这一点?请注意,我寻找最短的等效项 ES6+。
2 回答
![?](http://img1.sycdn.imooc.com/545868190001d52602200220-100-100.jpg)
慕桂英4014372
TA贡献1871条经验 获得超13个赞
Lodash castArray函数没有什么特别之处。有没有什么方法可以在没有任何外部库的情况下使用最新的语言功能来解决这个任务,但仍然很快?
如果您不熟悉该任务:
castArray(['abc', 'def'])
// ['abc', 'def']
castArray('abc')
// ['abc']
castArray()
// []
castArray(undefined)
// [undefined]
有没有办法在没有类型检查的情况下做到这一点?请注意,我寻找最短的等效项 ES6+。
![?](http://img1.sycdn.imooc.com/5333a1920001d36402200220-100-100.jpg)
绝地无双
TA贡献1946条经验 获得超4个赞
上面的答案没有考虑 NodeLists 和其他类似 Array 的(Iterrable)对象。
对 castArray 的更准确答案是
function isIterable(value) {
return Symbol.iterator in Object(value)
}
function getElementsAsArray(obj) {
if (!obj) {
return []
}
if (isIterable(obj) && typeof obj !== 'string') {
return Array.from(obj)
}
return [obj]
}
添加回答
举报
0/150
提交
取消