我想从变量中获取一个数组。如果它还不是数组,我想返回一个新变量作为唯一条目的数组。例如:
toArray('test'); // => ["test"]
toArray(['test']); // => ["test"]
我的实际工作代码是:
var toArray;
toArray = function(o) {
if (Array.isArray(o)) {
return o.slice();
} else {
return [o];
}
};
我想知道是否有更好的方法(例如本机或使用underscore.js)。
在红宝石中,你可以这样做:
Array('test') # => ["test"]
Array(['test']) # => ["test"]
答案 0 :(得分:2)
只需使用.concat()
。
[].concat("test"); // ["test"]
[].concat(["test"]); // ["test"]
数组将被展平为新数组。只需添加其他任何内容。
答案 1 :(得分:1)
function toArray(o) {
return Array.isArray(o) ? o.slice() : [o];
};
答案 2 :(得分:0)
我相信你可以把它分开:
var fooObj = {0: 123, 1: 'bar', length: 2};
var fooArr = Array.prototype.slice.call(fooObj);