1. ホーム
  2. javascript

[解決済み] 特定のキー値を持つオブジェクトの配列インデックスをアンダースコアで検索します。

2023-02-06 18:02:10

質問

アンダースコアで、特定のキー値を持つ項目をうまく見つけることができます。

var tv = [{id:1},{id:2}]
var voteID = 2;
var data = _.find(tv, function(voteItem){ return voteItem.id == voteID; });
//data = { id: 2 }

が、そのオブジェクトが発生した配列のインデックスを見つけるにはどうしたらいいでしょうか?

どのように解決するのですか?

既存のアンダースコアのメソッドがあるかどうかは知りませんが、プレーンなjavascriptで同じ結果を得ることができます。

Array.prototype.getIndexBy = function (name, value) {
    for (var i = 0; i < this.length; i++) {
        if (this[i][name] == value) {
            return i;
        }
    }
    return -1;
}

とすればいいのです。

var data = tv[tv.getIndexBy("id", 2)]