teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

リンクが見えなかったので修正しました

2016/03/19 07:37

投稿

tatsuya6502
tatsuya6502

スコア2055

answer CHANGED
@@ -13,7 +13,7 @@
13
13
  ---
14
14
  **追記**
15
15
 
16
- この `compareTo()` を使った例ですが、以下のように、`name.length` が異なる人同士を比較すると、正しく動いていることが確認できます。(Java の標準ライブラリに [`compareTo()`](http://docs.oracle.com/javase/jp/8/docs/api/java/lang/Comparable.html#compareTo-T-) というメソッド(関数の一種)があるので、多分、著者の方は、それを真似た例を示したかったのではないかと)
16
+ この `compareTo()` を使った例ですが、以下のように、`name.length` が異なる人同士を比較すると、正しく動いていることが確認できます。(Java の標準ライブラリに [compareTo()](http://docs.oracle.com/javase/jp/8/docs/api/java/lang/Comparable.html#compareTo-T-) というメソッド(関数の一種)があるので、多分、著者の方は、それを真似た例を示したかったのではないかと)
17
17
 
18
18
  ```javascript
19
19
  function MyData(name,mail,tel){

2

軽微な修正

2016/03/19 07:37

投稿

tatsuya6502
tatsuya6502

スコア2055

answer CHANGED
@@ -41,7 +41,7 @@
41
41
 
42
42
  var compare = function(person1, person2) {
43
43
  if (person1.compareTo(person2) > 0) {
44
- document.write(person1 + "が大きい。");
44
+ document.write(person1 + "が大きい。");
45
45
  } else if (person1.compareTo(person2) < 0) {
46
46
  document.write(person2 + "が大きい。");
47
47
  } else {

1

name\.length が異なる人同士の比較について追記しました。

2016/03/19 07:34

投稿

tatsuya6502
tatsuya6502

スコア2055

answer CHANGED
@@ -8,4 +8,54 @@
8
8
  } else {
9
9
  document.write(person1 + "と" + person2 + "は、同じ。");
10
10
  }
11
+ ```
12
+
13
+ ---
14
+ **追記**
15
+
16
+ この `compareTo()` を使った例ですが、以下のように、`name.length` が異なる人同士を比較すると、正しく動いていることが確認できます。(Java の標準ライブラリに [`compareTo()`](http://docs.oracle.com/javase/jp/8/docs/api/java/lang/Comparable.html#compareTo-T-) というメソッド(関数の一種)があるので、多分、著者の方は、それを真似た例を示したかったのではないかと)
17
+
18
+ ```javascript
19
+ function MyData(name,mail,tel){
20
+ this.name = name;
21
+ this.mail = mail;
22
+ this.tel = tel;
23
+
24
+ this.toString = function(){
25
+ return "[MyData " + this.name + "]";
26
+ }
27
+ this.equals = function(that){
28
+ return this.valueOf().length == that.valueOf().length;
29
+ }
30
+ this.valueOf = function(){
31
+ return this.toString();
32
+ }
33
+ this.compareTo = function(that){
34
+ return this.valueOf().length - that.valueOf().length;
35
+ }
36
+ }
37
+
38
+ var person1 = new MyData("山田太郎","taro@yamada.hoge","090-9999-9999");
39
+ var person2 = new MyData("田中花子","hanako@tanaka.hoge","080-8888-8888");
40
+ var person3 = new MyData("鈴木健太郎", "kentaro@suzuki.hoge", "070-7777-7777");
41
+
42
+ var compare = function(person1, person2) {
43
+ if (person1.compareTo(person2) > 0) {
44
+ document.write(person1 + "が大きい。");
45
+ } else if (person1.compareTo(person2) < 0) {
46
+ document.write(person2 + "が大きい。");
47
+ } else {
48
+ document.write(person1 + "と" + person2 + "は、同じ。");
49
+ }
50
+ document.write("</br>");
51
+ }
52
+
53
+ compare(person1, person2);
54
+ compare(person1, person3);
55
+ ```
56
+
57
+ **結果**
58
+ ```
59
+ [MyData 山田太郎]と[MyData 田中花子]は、同じ。
60
+ [MyData 鈴木健太郎]が大きい。
11
61
  ```