0

すべてが isPurchased のプロパティを持つクラスの配列があります。値が true に設定されている配列の最後の項目を返したいと思います。

function ShopItem = new function(id, name, isPurchased) {
    this.id = id;
    this.name = name;
    this.isPurchased = isPurchased;
}    

var apple = ShopItem(1, "Apple", false);
var banana = ShopItem(2, "Banana", true);
var pear = ShopItem(3, "Pear", false);

var shopItems = [apple, banana, pear];

var x = shopItems.lastIndexOf(this.isPurchased == true);
console.log(x);

console.log(x); を実行すると バナナクラスを返してほしい。

最後のアイテムを見つけようとするまで、すべてが正常に機能し、このために使用しようとしました:

var x = shopItems.lastIndexOf(this.isPurchased == true);

しかし、それは -1 を返します。

編集:

コードを使用してソリューションを解決する方法があります。

var y = null;

for(var o in shopItems) {
    if(shopItems[o].isPurchased == true) {
        y = shopItems[o];
    }
}

console.log(y);

しかし、lastIndexOf が私の問題を解決できるのであれば、車輪を再発明する代わりにそれを使用したいと思います。

4

1 に答える 1