将对象转换为包含对象作为元素0的数组

时间:2013-11-03 12:43:49

标签: javascript arrays object

从Json文件中我得到的元素(th)是单个对象或具有多个对象的数组。在第一种情况下,我想将其转换为具有一个元素的数组,因为我想以相同的方式处理这两种情况。我做了:

if( Object.prototype.toString.apply(th) !== '[object Array]' ) {
    var th1 = th;
    th = new Array();
    th[0] = th1;
}

这似乎有效,但看起来有点复杂。是否有更短的解决方案?

1 个答案:

答案 0 :(得分:3)

是的,你可以。 诀窍是:

var CurrentlyNotAnArrayButGoingtoBe=[CurrentlyNotAnArrayButGoingtoBe];

所以:

if( Object.prototype.toString.apply(th) !== '[object Array]' ) {
     th = [th];

}

另请注意

th = new Array(th);不安全

有人能做到:

Array = {}并且在th = new Array(th)

时您会遇到异常