Wie kann man am einfachsten prüfen, ob zwei Objekte gleich sind? Ich habe festgestellt, dass es keine Methode gibt ExactEqual()
-wie, also frage ich mich, ob ich es manuell tun sollte oder nicht.TypeScript und ExactEqual
Danke für jede Hilfe!
Wie kann man am einfachsten prüfen, ob zwei Objekte gleich sind? Ich habe festgestellt, dass es keine Methode gibt ExactEqual()
-wie, also frage ich mich, ob ich es manuell tun sollte oder nicht.TypeScript und ExactEqual
Danke für jede Hilfe!
Es gibt keine solche Methode. Werfen Sie einen Blick auf diesen Link jqfaq.com, wo es diskutiert und die beste Möglichkeit gegeben wurde zu überprüfen. Dies eignet sich sowohl für Typoskript und Javascript. Hoffe, das wird dir helfen!
den wichtigsten Teil dieser Antwort zu zitieren:
//“===” means that they are identical.
//“==” means that they are equal in value.
//(==)
//Each JavaScript value is of a specific “type” (Numbers, strings, Booleans, functions, and objects). So if you try to compare a string with a number, the browser will try to convert the string into a number before doing the comparison.
//So the following will return true.
55 == “55″ //true
0 == false //true
1 == true //true
//(===)
//The === operator will not do the conversion, if two values are not the same type it will return false. In other words, this returns true only if the operands are strictly equal in value or if they are identical objects.
55 === “55″ //false
0 === false //false
1 === true //false
var a = [1, 2, 3];
var b = [1, 2, 3];
var c = a;
var is_ab_eql = (a === b); // false (Here a and b are the same type,and also have the same value)
var is_ac_eql = (a === c); // true.
//Value types (numbers):
//a === b returns true if a and b have the same value and are of the same type.
//Reference types:
//a === b returns true if a and b reference the exact same object.
//Strings:
//a === b returns true if a and b are both strings and contain the exact same characters.
var a = “ab” + “c”;
var b = “abc”;
a === b //true
a == b //true
//in thiss case the above condition will fail
var a = new String(“abc”);
var b = “abc”;
a === b //false
a == b// true
//… since a and b are not a same type.
typeof “abc”; // ‘string’
typeof new String(“abc”)); // ‘object
Die Erklärung für 'is_ab_eql' nicht wirklich etwas erklären ist. Sie sind vom selben Typ, haben den gleichen Wert, aber '===' return 'false'. Warum? – n0rd