如何避免 castArray 函数?

Lodash castArray函数没有什么特别之处。有没有什么方法可以在没有任何外部库的情况下使用最新的语言功能来解决这个任务,但仍然很快?


如果您不熟悉该任务:


castArray(['abc', 'def'])

// ['abc', 'def']

castArray('abc')

// ['abc']

castArray()

// []

castArray(undefined)

// [undefined]

有没有办法在没有类型检查的情况下做到这一点?请注意,我寻找最短的等效项 ES6+。


青春有我
浏览 156回答 2
2回答

慕桂英4014372

Lodash castArray函数没有什么特别之处。有没有什么方法可以在没有任何外部库的情况下使用最新的语言功能来解决这个任务,但仍然很快?如果您不熟悉该任务:castArray(['abc', 'def'])// ['abc', 'def']castArray('abc')// ['abc']castArray()// []castArray(undefined)// [undefined]有没有办法在没有类型检查的情况下做到这一点?请注意,我寻找最短的等效项 ES6+。

绝地无双

上面的答案没有考虑 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]}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript