2013-06-30 41 views
2

我有一個問題。爲什麼這個方法返回對象?在我的代碼的其他部分我無法使用forEach方法。方法返回對象而不是數組

objectToArrayOfObjects: function (obj, additionalProperties) { 
    var arrayOfObjects = []; 
    for (var name in obj) { 
     if (obj.hasOwnProperty(name)) { 
      var generatedObject = {name: name, value: obj[name]}; 
      arrayOfObjects.push(_.extend(generatedObject, additionalProperties)); 
     } 
    } 
    console.log(typeof arrayOfObjects); // return object 
    return arrayOfObjects; 
}, 
+2

'typeof [] ==='object';'因爲數組本質上是JavaScript中的對象。 – Oleg

回答

5

一切從在Javascript Object繼承,所以typeof回報object。方法確實返回一個數組,你可以驗證,通過使用:console.log(arrayOfObjects instanceof Array)

+1

或更好 - 考慮從另一個框架來的數組上面的例子將是錯誤的,但看看構造函數的名字,而不會是:Object.prototype.toString.call(arrayOfObjects)==='[object Array]' – andlrc

+0

或者對於'arrayOfObjects.constructor === Array'或者'/array/i.test(arrayOfObjects.constructor)' – KooiInc

-1

你可以使用jQuery的$ .each方法循環對象。

+0

這並不回答這個問題。另外,不需要使用jQuery來完成可以用兩行代碼完成的事情。 – Oleg

相關問題