問題

我正在嘗試編寫一個接受字串列表或單個字串的函式.如果它是一個字串,那麼我想將其轉換為只有一個專案的陣列.然後我可以在不擔心錯誤的情況下迴圈它.

那麼如何檢查變數是否是陣列?


我已經完成了下面的各種解決方案並建立了一個 jsperf測試.

  最佳答案

在現代瀏覽器中你可以做

 Array.isArray(obj)
 

( 支援 Chrome 5,Firefox 4.0,IE 9,Opera 10.5和Safari 5)

對於後向相容性,您可以新增以下內容

 # only implement if no native implementation is available
if (typeof Array.isArray === 'undefined') {
  Array.isArray = function(obj) {
    return Object.prototype.toString.call(obj) === '[object Array]';
  }
};
 

如果您使用jQuery,您可以使用jQuery.isArray(obj)$.isArray(obj).如果您使用下劃線,您可以使用_.isArray(obj)

如果您不需要檢測在不同幀中建立的陣列,您也可以使用 instanceof

 obj instanceof Array
 

  相同標籤的其他問題

javascriptarraysjavascript-objects
下一個問題: