54 lines
1.0 KiB
Plaintext
54 lines
1.0 KiB
Plaintext
import "./fmt" for Fmt
|
|
|
|
class A {
|
|
construct new(age, name) {
|
|
_age = age
|
|
_name = name
|
|
}
|
|
|
|
age { _age }
|
|
name { _name }
|
|
}
|
|
|
|
class B {
|
|
construct new(character, nemesis) {
|
|
_character = character
|
|
_nemesis = nemesis
|
|
}
|
|
|
|
character { _character }
|
|
nemesis { _nemesis }
|
|
}
|
|
|
|
var tableA = [
|
|
A.new(27, "Jonah"), A.new(18, "Alan"), A.new(28, "Glory"),
|
|
A.new(18, "Popeye"), A.new(28, "Alan")
|
|
]
|
|
var tableB = [
|
|
B.new("Jonah", "Whales"), B.new("Jonah", "Spiders"), B.new("Alan", "Ghosts"),
|
|
B.new("Alan", "Zombies"), B.new("Glory", "Buffy")
|
|
]
|
|
var h = {}
|
|
var i = 0
|
|
for (a in tableA) {
|
|
var n = h[a.name]
|
|
if (n) {
|
|
n.add(i)
|
|
} else {
|
|
h[a.name] = [i]
|
|
}
|
|
i = i + 1
|
|
}
|
|
|
|
System.print("Age Name Character Nemesis")
|
|
System.print("--- ----- --------- -------")
|
|
for (b in tableB) {
|
|
var c = h[b.character]
|
|
if (c) {
|
|
for (i in c) {
|
|
var t = tableA[i]
|
|
Fmt.print("$3d $-5s $-9s $s", t.age, t.name, b.character, b.nemesis)
|
|
}
|
|
}
|
|
}
|