如何创建具有单个元素或元素数组的数组?

How to create an Array with a single element or an array of elements?

在多种语言中,编写接受数组或单个对象的方法是很常见的:

例如 Ruby:

def sum(array_or_single_element)
  # converts into array if single element, remains the same otherwise
  array = Array(array_or_single_element)
  array.reduce(:+)
end

我觉得 Lodash 是来为 JS 提供这种类型的实用程序的。但是它没有提供这样的方法。

我不太喜欢写作

if (typeof array === 'Array') {
  //
}

你可以像这样使用Array.prototype.concat

console.log([].concat(0));
// [ 0 ]
console.log([].concat([1, 2, 3]));
// [ 1, 2, 3 ]
console.log([].concat("thefourtheye"));
// [ 'thefourtheye' ]

我们将我们想要的所有元素与一个空数组连接起来。因此,即使我们的原始数据只是单个元素,它也会成为新数组的一部分。