【IE11】配列のfindメソッドを使えるようにする方法

どうも、イソップ(@Yuhiisk)です。

IE11では、Array.prototype.findメソッドがサポートされていないためエラーになってしまいます。

しかしPolyfill(ポリフィル、代替コード)を実装することで、IE11でもエラーにならず正常動作させることが出来ます。

Polyfill実装コード

次のコードをサイトで読み込んでいるJSファイルに追加しましょう。

[js]
if (!Array.prototype.find) {
Array.prototype.find = function(predicate) {
if (this === null) {
throw new TypeError(‘Array.prototype.find called on null or undefined’);
}
if (typeof predicate !== ‘function’) {
throw new TypeError(‘predicate must be a function’);
}
var list = Object(this);
var length = list.length >>> 0;
var thisArg = arguments[1];
var value;

for (var i = 0; i < length; i++) { value = list[i]; if (predicate.call(thisArg, value, i, list)) { return value; } } return undefined; }; } [/js] このコードを追加するだけで、IE11でもfindメソッドが利用できるようになります。 できるだけ早く読み込まれる箇所にコードを追加してください。 実際にfindメソッドを利用するコードの後に追加しても、ポリフィルは有効にならずエラーになってしまいます。 [aside type="border"]参考サイト
Array.prototype.find() – JavaScript | MDN[/aside]

五十川 洋平(Yohei Isokawa)

五十川 洋平(Yohei Isokawa)

フロントエンドエンジニア/面白法人カヤックなどのWeb制作会社に勤務したのち、故郷の新潟に戻り独立。JSフレームワークAngularやFirebase、Google Cloud Platformを使ったWebアプリ開発が得意。 また、Udemyのプログラミング解説の講師、writer.appの自主開発や上越TechMeetupの主催などを行っています。

プロフィール

©Copyright 2022 Yohei Isokawa All Rights Reserved.