Hier ist ein Beispiel für einen Getter, der über ein Array iteriert und erwartet, dass ein Element zurückgegeben wird, für das a
true
ist. Aber test.active
gibt undefined
zurück.Warum kehrt dieser Getter undefiniert zurück?
var test = {
arr: [
{id: 1, a: false},
{id: 2, a: false},
{id: 3, a: true},
{id: 4, a: false},
{id: 5, a: false},
],
get active() {
this.arr.forEach(item => {
if(item.a) return item
})
}
}
Warum?
[ 'find'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/find) ist die richtige Methode, um hier benutzen. 'return this.arr.find (item => item.a);' –
was ist, wenn mehr als ein Element 'a === true' hat? –