我正在查找如何檢查JavaScript中的變量是否爲數組,但隨着SO頁面加載,我想到了解決問題的辦法。通過回答,我發現他們都沒有想到這個簡單的答案:只需檢查我們需要在數組上使用的方法,以便它仍然適用於實現相同方法的任何用戶定義類型。作爲一名有幫助的人,我想我會爲將來的人提交我的答案,試圖解決同樣的問題。但是經過測試,我發現它不起作用。當對象可能是字符串時使用'in'
function print(object) {
if ('map' in object) { // If the object implements map, treat it like an array
object.map(function(current) {
console.log(current);
});
} else { // Otherwise, treat it as a string
console.log(object);
}
}
現在,這個工作正常,當我用數組調用它,但如果我使用一個字符串失敗。由於字符串是javascript中的對象,爲什麼'in'關鍵字不能爲它們工作?有沒有什麼辦法可以實現這一點,就像現在一樣簡單?
這樣做:'if(「map」in Object(object)){...'任何原語都將被轉換爲它的對象包裝類型。 –
^^這很簡單,我喜歡。 – kennycoc
我必須說,有更可靠的是看是否一個對象是一個數組。 –