Add values iterator in InstanceSet

This commit is contained in:
Zaid Abdulla committed 2016-10-24 17:30:08 -07:00
1 parent 15437361e1
commit b01f3d394e
1 file changed
+34 -30
+34 -30
View File
@@ -36,14 +36,14 @@ class InstanceSet {
for (let inst of this.set) {
let match = true;
for (let k in instance) {
if (inst[k] !== instance[k]) {
match = false;
break;
}
if (inst[k] !== instance[k]) {
match = false;
break;
}
}
if (match)
res.push(inst);
res.push(inst);
}
res.sort(function(a, b) {
@@ -51,20 +51,20 @@ class InstanceSet {
let keysB = Object.keys(b);
if (keysA.length != keysB.length)
return keysB.length - keysA.length;
return keysB.length - keysA.length;
keysA.sort();
keysB.sort();
for (let i = 0; i < keysA.length; ++ i) {
if (keysA[i] > keysB[i])
return 1;
else if (keysA[i] < keysB[i])
return -1;
else if (a[keysA[i]] > b[keysB[i]])
return 1;
else if (a[keysA[i]] < b[keysB[i]])
return -1;
if (keysA[i] > keysB[i])
return 1;
else if (keysA[i] < keysB[i])
return -1;
else if (a[keysA[i]] > b[keysB[i]])
return 1;
else if (a[keysA[i]] < b[keysB[i]])
return -1;
}
return 0;
@@ -75,18 +75,18 @@ class InstanceSet {
subset(instance) {
let res = [];
for (let inst of this.set) {
let match = true;
for (let k in inst) {
if (inst[k] !== instance[k]) {
match = false;
break;
}
if (inst[k] !== instance[k]) {
match = false;
break;
}
}
if (match)
res.push(inst);
res.push(inst);
}
res.sort(function(a, b) {
@@ -94,31 +94,35 @@ class InstanceSet {
let keysB = Object.keys(b);
if (keysA.length != keysB.length)
return keysA.length - keysB.length;
return keysA.length - keysB.length;
keysA.sort();
keysB.sort();
for (let i = 0; i < keysA.length; ++ i) {
if (keysA[i] > keysB[i])
return 1;
else if (keysA[i] < keysB[i])
return -1;
else if (a[keysA[i]] > b[keysB[i]])
return 1;
else if (a[keysA[i]] < b[keysB[i]])
return -1;
if (keysA[i] > keysB[i])
return 1;
else if (keysA[i] < keysB[i])
return -1;
else if (a[keysA[i]] > b[keysB[i]])
return 1;
else if (a[keysA[i]] < b[keysB[i]])
return -1;
}
return 0;
});
return res;
return res;
}
forEach(callback) {
return this.set.forEach(callback);
}
values() {
return this.set.values();
}
}
module.exports = InstanceSet;