140 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			140 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | id: 5e6dd15004c88cf00d2a78b3 | ||
|  | title: 複数配列に対する同時ループ処理 | ||
|  | challengeType: 5 | ||
|  | forumTopicId: 385279 | ||
|  | dashedName: loop-over-multiple-arrays-simultaneously | ||
|  | --- | ||
|  | 
 | ||
|  | # --description--
 | ||
|  | 
 | ||
|  | 複数の配列にループ処理を行い、 与えられた各要素 $i^{th}$ の連結である$i^{th}$ 要素を持つ新しい配列を作成します。 | ||
|  | 
 | ||
|  | 以下の例では、次の配列の配列が与えられています。 | ||
|  | 
 | ||
|  | ```js | ||
|  | [ ["a", "b", "c"], ["A", "B", "C"], [1, 2, 3] ] | ||
|  | ``` | ||
|  | 
 | ||
|  | 出力は次のようになります。 | ||
|  | 
 | ||
|  | ```js | ||
|  | ["aA1","bB2","cC3"] | ||
|  | ``` | ||
|  | 
 | ||
|  | # --instructions--
 | ||
|  | 
 | ||
|  | 配列の配列をパラメータとして取り、上記の説明を満たす文字列の配列を返す関数を記述してください。 | ||
|  | 
 | ||
|  | # --hints--
 | ||
|  | 
 | ||
|  | `loopSimult` は関数とします。 | ||
|  | 
 | ||
|  | ```js | ||
|  | assert(typeof loopSimult == 'function'); | ||
|  | ``` | ||
|  | 
 | ||
|  | `loopSimult([["a", "b", "c"], ["A", "B", "C"], [1, 2, 3]])` は配列を返す必要があります。 | ||
|  | 
 | ||
|  | ```js | ||
|  | assert( | ||
|  |   Array.isArray( | ||
|  |     loopSimult([ | ||
|  |       ['a', 'b', 'c'], | ||
|  |       ['A', 'B', 'C'], | ||
|  |       [1, 2, 3] | ||
|  |     ]) | ||
|  |   ) | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | `loopSimult([["a", "b", "c"], ["A", "B", "C"], [1, 2, 3]])` は `["aA1", "bB2", "cC3"]` を返す必要があります。 | ||
|  | 
 | ||
|  | ```js | ||
|  | assert.deepEqual( | ||
|  |   loopSimult([ | ||
|  |     ['a', 'b', 'c'], | ||
|  |     ['A', 'B', 'C'], | ||
|  |     [1, 2, 3] | ||
|  |   ]), | ||
|  |   ['aA1', 'bB2', 'cC3'] | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | `loopSimult([["c", "b", "c"], ["4", "5", "C"], [7, 7, 3]])` は `["c47", "b57", "cC3"]` を返す必要があります。 | ||
|  | 
 | ||
|  | ```js | ||
|  | assert.deepEqual( | ||
|  |   loopSimult([ | ||
|  |     ['c', 'b', 'c'], | ||
|  |     ['4', '5', 'C'], | ||
|  |     [7, 7, 3] | ||
|  |   ]), | ||
|  |   ['c47', 'b57', 'cC3'] | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | `loopSimult([["a", "b", "c", "d"], ["A", "B", "C", "d"], [1, 2, 3, 4]])` は `["aA1", "bB2", "cC3", "dd4"]` を返す必要があります。 | ||
|  | 
 | ||
|  | ```js | ||
|  | assert.deepEqual( | ||
|  |   loopSimult([ | ||
|  |     ['a', 'b', 'c', 'd'], | ||
|  |     ['A', 'B', 'C', 'd'], | ||
|  |     [1, 2, 3, 4] | ||
|  |   ]), | ||
|  |   ['aA1', 'bB2', 'cC3', 'dd4'] | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | `loopSimult([["a", "b"], ["A", "B"], [1, 2]])` は `["aA1", "bB2"]` を返す必要があります。 | ||
|  | 
 | ||
|  | ```js | ||
|  | assert.deepEqual( | ||
|  |   loopSimult([ | ||
|  |     ['a', 'b'], | ||
|  |     ['A', 'B'], | ||
|  |     [1, 2] | ||
|  |   ]), | ||
|  |   ['aA1', 'bB2'] | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | `loopSimult([["b", "c"], ["B", "C"], [2, 3]])` は `["bB2", "cC3"]` を返す必要があります。 | ||
|  | 
 | ||
|  | ```js | ||
|  | assert.deepEqual( | ||
|  |   loopSimult([ | ||
|  |     ['b', 'c'], | ||
|  |     ['B', 'C'], | ||
|  |     [2, 3] | ||
|  |   ]), | ||
|  |   ['bB2', 'cC3'] | ||
|  | ); | ||
|  | ``` | ||
|  | 
 | ||
|  | # --seed--
 | ||
|  | 
 | ||
|  | ## --seed-contents--
 | ||
|  | 
 | ||
|  | ```js | ||
|  | function loopSimult(A) { | ||
|  | 
 | ||
|  | } | ||
|  | ``` | ||
|  | 
 | ||
|  | # --solutions--
 | ||
|  | 
 | ||
|  | ```js | ||
|  | function loopSimult(A) { | ||
|  |     var res = [], output; | ||
|  |     for (var i = 0; i < A[0].length; i += 1) { | ||
|  |         output = ""; | ||
|  |         for (var j = 0; j < A.length; j++) | ||
|  |             output += A[j][i]; | ||
|  |         res.push(output); | ||
|  |     } | ||
|  |     return res; | ||
|  | } | ||
|  | ``` |