从javascript中的变量中获取数组

时间:2013-03-05 01:01:37

标签: javascript

我想从变量中获取一个数组。如果它还不是数组,我想返回一个新变量作为唯一条目的数组。例如:

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"]

3 个答案:

答案 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);

演示:http://jsfiddle.net/sh5R9/