字典优势:
完整的函数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
}
}
}
× 我是好人
打赏二维码