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

回答編集履歴

3

文章修正

2018/08/01 23:07

投稿

takopo
takopo

スコア484

answer CHANGED
@@ -1,4 +1,4 @@
1
- filterメソッドは条件に合致した要素だけを取り出すので、書かれている内容で合っていると思います。
1
+ filterメソッドは条件に合致した要素を取り出すので、書かれている内容で合っていると思います。
2
2
  なぜ 「test01」と「test03」だけが返ってくるのかというのは、console.logが「if (te.name == 'test02') return true;」という文の下にあるからだと思います。filterメソッドのコールバックで、すべての要素を1つ1つ調べて、2つ目の要素の時、return true で処理をストップしてしまっているので、以下のconsoleが表示されません。試しに下のようにconsoleをif文の上に移動してみると、「test01」「test02」「test03」と表示されると思います。
3
3
  ```javascript
4
4
  function callback(test){

2

文章を修正しました

2018/08/01 23:07

投稿

takopo
takopo

スコア484

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  filterメソッドは条件に合致した要素だけを取り出すので、書かれている内容で合っていると思います。
2
- なぜ te.name :test01とte.name :test03 が返ってくるのかというのは「if (te.name == 'test02') return true;」という文の下にconsoleがあるからだと思います。2の場合先にreturnでしてしまっているので、consoleが表示されません。試しに下のようにconsoleをif文の上に移動してみると、「test01」「test02」「test03」と表示されると思います。
2
+ なぜ test01test03」だけが返ってくるのかというのは、console.logが「if (te.name == 'test02') return true;」という文の下にあるからだと思います。filterメソッドのコールバックで、すべての要素を1つ1つ調べて、2つ目要素の時、return true 処理をストップしてしまっているので、以下のconsoleが表示されません。試しに下のようにconsoleをif文の上に移動してみると、「test01」「test02」「test03」と表示されると思います。
3
3
  ```javascript
4
4
  function callback(test){
5
5
  var test_jsonp = test.test_obj.filter(function(te, index){
@@ -11,4 +11,8 @@
11
11
  console.log(test_jsonp.toSource()); // test_jsonpの中身
12
12
  }
13
13
  ```
14
- また、[object Object]となっていますが、test_jsonp の中身は「test02」に合致した、2番目のオブジェクトだけが入っているので問題ないと思います。
14
+ また、[object Object]となっているのはおそらくObjectオブジェクトのobjectという意味で、test_jsonp の中身は「test02」に合致した、2番目のオブジェクトだけが入っているので問題ないと思います。もし中身が複数の場合は
15
+ ```javascript
16
+ [object Object],[object Object]
17
+ ```
18
+ のように表示されると思います。

1

文章を修正しました

2018/08/01 22:43

投稿

takopo
takopo

スコア484

answer CHANGED
@@ -1,5 +1,5 @@
1
1
  filterメソッドは条件に合致した要素だけを取り出すので、書かれている内容で合っていると思います。
2
- なぜ te.name :test01とte.name :test03 が返ってくるのかというのは「if (te.name == 'test02') return true;」という文の下にconsoleがあるからだと思います。2の場合、先にretunで返してしまっているので、consoleが表示されません。試しに下のようにconsoleをif文の上に移動してみると、3つのオブジェクトが表示されると思います。
2
+ なぜ te.name :test01とte.name :test03 が返ってくるのかというのは「if (te.name == 'test02') return true;」という文の下にconsoleがあるからだと思います。2の場合、先にreturnで返してしまっているので、consoleが表示されません。試しに下のようにconsoleをif文の上に移動してみると、「test01」「test02」「test03」と表示されると思います。
3
3
  ```javascript
4
4
  function callback(test){
5
5
  var test_jsonp = test.test_obj.filter(function(te, index){