2016-07-16 84 views
2

我有一個我知道可迭代的對象。我想根據是否是Map做一些不同的事情。這是一個不完整的解決方案:檢查Iterable是否爲映射

function toList(iterable) { 
    let results = []; 
    if (/* iterable is a map */) { 
     for (let elem of iterable) { 
      elem[1].key = elem[0]; 
      results.push(elem[1]); 
     } 
    } else { 
     for (let elem of iterable) { 
      results.push(elem); 
     } 
    } 
    return results; 
} 

有什麼我可以用它來檢查權威性是否iterable是地圖或不?

回答

3

您在這裏找的關鍵字是instanceof。它檢查另一個對象是否在對象的原型鏈中。

if (iterable instanceof Map) { 
    ... 
} 
0

您可以使用toString()方法:

var iterable = new Map(); 
 

 
if (iterable.toString() == '[object Map]') { 
 
    console.log('Map!'); 
 
}

你的情況

所以