我有一個對象數組,我需要從中找到一個特定的索引,然後從數組中刪除相應的對象。爲什麼Internet Explorer 11對象不支持屬性或方法'findIndex'
我用findIndex()
方法:
var index = data.findIndex(x => x.OBJECTID == objectID);
data.splice(index, 1);
這工作正常,在Chrome,但在IE 11,它拋出
對象不支持屬性或方法 'findIndex'
我解決了這個通過使用這個解決方案從這個stackoverflow答案:findIndex() method issue with internet explorer
在檢查控制檯日誌,我注意到在Chrome和IE 11的對象的陣列之間的差:
在IE 11,控制檯日誌,對象的陣列是: enter image description here
而在鉻,它是: enter image description here
請注意,鉻中的對象是類型對象,但在IE中,它們是[object object]類型。這就是爲什麼findIndex()方法失敗?如果是這樣,爲什麼類型不同,爲什麼findIndex()在IE 11中失敗?
*「爲什麼」*?因爲它是一個相對較新的ES6功能。傳統瀏覽器無法全部追溯添加新功能。這一直是瀏覽器進化多年的方式 – charlietfl
[IE目前還不支持](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/ findIndex)。 –
嗯。對象類型是否是[object Object]的特殊原因?那部分讓我困惑。 – sikanderBabwani