JavaScript の Array クラスを拡張して要素番号を指定せずに削除する

JavaScript の配列の要素を削除するには、delete や splice を使う方法がありますが、この場合は要素番号を指定する必要があります。

削除対象である要素の要素番号を求めるのが面倒だったので、削除したい要素の値を与えることで削除ができるように Array クラスを拡張することにしました。
拡張した Array クラスは、与える要素が文字や数値だけでなく、配列や連想配列にも対応しています。

/**
 * 配列に対象オブジェクトが含まれていたら削除する
 *
 * @param {Object} 削除したいオブジェクト
 * @return {Object} 削除したオブジェクト。含まれていない場合は false
 *
 * @example
 * >>> var test = [1, 2, [3, 4], {foo: "bar"}, [5, 6]];
 * >>> test.remove([3, 4]);
 * >>> console.log(test)
 * [1, 2, {foo: "bar"}, [5, 6]]
 * >>> test.remove({foo: "bar"});
 * >>> console.log(test);
 * [1, 2, [5, 6]]
 * 
 */
Array.prototype.remove = function(value) {
    for (var i in this)
        if (this.hasOwnProperty(i) && this[i].toString() === value.toString())
            return this.splice(i, 1)[0];
    return false;
};
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中