1.5 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.5 KiB
		
	
	
	
	
	
	
	
id, title, challengeType, forumTopicId, dashedName
| id | title | challengeType | forumTopicId | dashedName | 
|---|---|---|---|---|
| ab306dbdcc907c7ddfc30830 | ローラーで押し潰せ! | 5 | 16079 | steamroller | 
--description--
ネストされた配列を平坦化してください。 さまざまなレベルのネストを考慮する必要があります。
--hints--
steamrollArray([[["a"]], [["b"]]]) は ["a", "b"] を返す必要があります。
assert.deepEqual(steamrollArray([[['a']], [['b']]]), ['a', 'b']);
steamrollArray([1, [2], [3, [[4]]]]) は [1, 2, 3, 4] を返す必要があります。
assert.deepEqual(steamrollArray([1, [2], [3, [[4]]]]), [1, 2, 3, 4]);
steamrollArray([1, [], [3, [[4]]]]) は [1, 3, 4] を返す必要があります。
assert.deepEqual(steamrollArray([1, [], [3, [[4]]]]), [1, 3, 4]);
steamrollArray([1, {}, [3, [[4]]]]) は [1, {}, 3, 4] を返す必要があります。
assert.deepEqual(steamrollArray([1, {}, [3, [[4]]]]), [1, {}, 3, 4]);
解答には Array.prototype.flat() メソッドや Array.prototype.flatMap() メソッドを使用しないでください。
assert(!code.match(/\.\s*flat\s*\(/) && !code.match(/\.\s*flatMap\s*\(/));
--seed--
--seed-contents--
function steamrollArray(arr) {
  return arr;
}
steamrollArray([1, [2], [3, [[4]]]]);
--solutions--
function steamrollArray(arr) {
  if (!Array.isArray(arr)) {
    return [arr];
  }
  var out = [];
  arr.forEach(function(e) {
    steamrollArray(e).forEach(function(v) {
      out.push(v);
    });
  });
  return out;
}