Wie prüfe ich, ob ein bestimmter Schlüssel in einem JavaScript-Objekt oder -Array existiert?
Wenn ein Schlüssel nicht existiert und ich versuche, auf ihn zuzugreifen, wird dann "false" zurückgegeben? Oder wird ein Fehler ausgegeben?
Wie prüfe ich, ob ein bestimmter Schlüssel in einem JavaScript-Objekt oder -Array existiert?
Wenn ein Schlüssel nicht existiert und ich versuche, auf ihn zuzugreifen, wird dann "false" zurückgegeben? Oder wird ein Fehler ausgegeben?
In der "Array"-Welt können wir die Indizes als eine Art Schlüssel betrachten. Überraschend ist die in
Operator (der eine gute Wahl für Objekte ist) funktioniert auch mit Arrays. Der zurückgegebene Wert für einen nicht existierenden Schlüssel ist undefined
let arr = ["a","b","c"]; // we have indexes: 0,1,2
delete arr[1]; // set 'empty' at index 1
arr.pop(); // remove last item
console.log(0 in arr, arr[0]);
console.log(1 in arr, arr[1]);
console.log(2 in arr, arr[2]);
Es ist erwähnenswert, dass Sie seit der Einführung von ES11 den nullischen Koaleszenzoperator verwenden können, was die Dinge sehr vereinfacht:
const obj = {foo: 'one', bar: 'two'};
const result = obj.foo ?? "Not found";
Der obige Code gibt "Nicht gefunden" für alle "falschen" Werte in foo zurück. Andernfalls wird obj.foo zurückgegeben.
yourArray.indexOf(yourArrayKeyName) > -1
fruit = ['apple', 'grapes', 'banana']
fruit.indexOf('apple') > -1
wahr
fruit = ['apple', 'grapes', 'banana']
fruit.indexOf('apple1') > -1
falsch
für eine strenge Überprüfung der Objektschlüssel:
const object1 = {};
object1.stackoverflow = 51;
console.log(object1.hasOwnProperty('stackoverflow'));
output: true
Okay, für Objektprüfung können Sie Object.keys({}).length verwenden, wo es Länge dieses Array-Objekts zurückgibt. zum Beispiel Object.keys({}).length Ausgabe -> 0
Use this.. @ken const object1 = {}; object1.stackoverflow = 51; console.log(object1.hasOwnProperty('stackoverflow')); // Ausgabe: true
JS Doppeltes Ausrufezeichen !!
Zeichen kann in diesem Fall helfen.
const cars = {
petrol:{
price: 5000
},
gas:{
price:8000
}
}
Angenommen, wir haben das obige Objekt und wenn Sie versuchen, Auto mit Benzinpreis zu protokollieren.
=> console.log(cars.petrol.price);
=> 5000
Sie werden auf jeden Fall 5000 Euro bekommen. Aber was ist, wenn Sie versuchen, ein Elektroauto zu kaufen, das es nicht gibt, dann bekommst du
undefine
=> console.log(cars.electric);
=> undefine
Aber mit
!!
das ist die Kurzform für die Umwandlung einer Variablen in einen booleschen Wert (wahr oder falsch).
=> console.log(!!cars.electric);
=> false
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
2 Stimmen
Alles (fast alles) in JavaScript ist ein Objekt oder kann in ein Objekt umgewandelt werden. Dies ist, wo pseudo-assoziative Arrays sind geboren, wie @PatrickM wies darauf hin.
0 Stimmen
Dieser Benchmark jsben.ch/#/WqlIl gibt Ihnen einen Überblick über die gebräuchlichsten Methoden, um diese Prüfung zu erreichen.
4 Stimmen
Eine schnelle Abhilfe, normalerweise wähle ich
property.key = property.key || 'some default value'
nur für den Fall, dass ich möchte, dass dieser Schlüssel mit einem Wert versehen ist