字典优势:
完整的函数isGreaterThan(dict1,dict2)将输入两个JavaScript中的对象,只有键和数值。该函数返回True当且仅当dict1是
就所有的键而言,大于或等于dict2,并且它是严格的至少在一个键上大于dict2。例子:
dict1={‘a’:1,b’:2} 和 dict2={‘a’:1,’b’:1}。在这种情况下,dict1对a等于dict2,但对b更大,因此,该函数应该返回 True。
dict1={‘a’:1’b’:1}和 dict2={‘a’:1’b’:1}。在这种情况下,dict1和 dict2是等价的;因此,该函数应该返回False。
dict1={‘a’:1b’:0}和dict2={‘a’:0’b:1}。在这种情况下,dict1相对于a大于dict2,但相对于a而言较低乙;因此,该函数应该返回False。
两个字典/对象可能不一定具有相同的键。如果字典/对象没有另一个拥有的键,则前者就该键而言低于后者,无论该值是多少后者可能有。例子:
dict1={‘a:1’b’:2c:-10}和dict2={a’:1b:1}。字典1就所有键而言都大于dict2;因此,该函数应该返回True。
dict1=’a’:1’b’:1 和 dict2={c’:0}。在这种情况下,dict1不是大于dict2,因为dict1没有键c;因此函数应该返回 False。
实现如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| function isGreaterThan(dict1, dict2) { Object.prototype.equals = function (obj) { if (this == obj) return true; if (typeof (obj) == "undefined" || obj == null || typeof (obj) != "object") return false; var length = 0; var length1 = 0; for (var ele in this) { length++; } for (var ele in obj) { length1++; } if (length != length1) return false; if (obj.constructor == this.constructor) { for (var ele in this) { if (typeof (this[ele]) == "object") { if (!this[ele].equals(obj[ele])) return false; } else if (typeof (this[ele]) == "function") { if (!this[ele].toString().equals(obj[ele].toString())) return false; } else if (this[ele] != obj[ele]) return false; } return true; } return false; }; if (dict1.equals(dict2)) { return false } else { function isGreaterThan1() { for (let item in dict2) { if (dict1[item]) { if (dict1[item] < dict2[item]) { return false } else if (dict1[item] == dict2[item]) { continue } else { continue } } else { return false } } } if (isGreaterThan1() == undefined) { return true } else if (isGreaterThan1() == false) { return false } } }
|