2017-11-10 4 views
0

Ich habe ein Objekt und ich muss überprüfen, ob alle Werte wahr sind.Jede Funktion mit Object.values ​​funktioniert nicht

Ive Object.value verwendet, um ein Array der wahren und falschen Werte zu erhalten. Aber ich kann nicht scheinen, dass jede Funktion funktioniert, sie kehrt immer wieder zurück.

const test = Object.values(equipmentSelection) 
    .every((element) => { 
    if (element = true) return true; 
    }); 
+2

Sie geben aufgrund dieses Zuweisungsoperators immer 'wahr' zurück. Wählen Sie, um als Tippfehler zu schließen – Phil

+0

Sie zuweisen 'Element' zu sein" wahr " – JohanP

+1

Sie haben ein einzelnes Gleichheitszeichen in Ihrer Bedingung. Ich bin mir sicher, dass dies nur ein Tippfehler ist, aber um es noch einmal zu wiederholen: Ein Zeichen entspricht einem Zeichen und ein Doppel entspricht einem Zeichen. –

Antwort

2

einfach das Element zurück, ohne bedingte Scheck zu verwenden, können Sie dieses tun

const test = Object.values(equipmentSelection) 
    .every(element => element) 
    }); 
1

Sie verwenden einen Zuweisungsoperator = anstelle eines logischen == oder === Operator. Sie setzen also grundsätzlich element auf true und verwenden dann denselben Wert (true) als Bedingung von if. So ist die if Bedingung immer true und somit wird true für jedes Element im Array zurückgegeben.

Da element vom Typ boolean ist, Sie brauchen nicht die if Anweisung, nur seinen Wert verwenden:

.every(element => element); 
0

Sie dies tun können.

const test = Object.values(equipmentSelection) 
    .every(element => element===true); 

Und wie andere gesagt haben,

.every(element => element); 

werden die Elemente Wert zurückgeben, die mit richtig oder falsch ist, und das ist, was Sie mit den Vergleichen zu bekommen.

Verwandte Themen