私はlulzのCodeWarsチャレンジを達成しようとしていますが、提出物を渡すのに十分なパフォーマンスを得ることができません。解決策は正しく、すべてのテストに合格したが、それは、性能試験を失敗し、服用> 120000ミリ秒nonperformant javascriptコードを最適化/デバッグする方法
YOU FOR MY 2つの質問
がどのように誰かがパフォーマンスの問題をデバッグするのですか?パフォーマンスをデバッグして不具合のあるコードを特定する方法、または意図的にコードを最適化する方法がわかりません
この特定のコードの問題は何ですか?私が間違って実行しているパターンはありますか?何度も起こっているコードの部分はありますか?
詳細な要件は、ここで見つけることができます: https://www.codewars.com/kata/integers-recreation-one `` `
//generate an array of range, containing every number M to N
//map1: for each number find all divisors
//map2: for each array of divisors, format answer for tests
//filter out undefined results
let listSquared = (m, n) => range(m,n)
.map(nextNumberInRange => findDivisors(nextNumberInRange))
.map(arrayOfDivisors => formatAnswer(
arrayOfDivisors[arrayOfDivisors.length - 1],
squareAndSumAll(arrayOfDivisors)))
.filter(x => x !== undefined)
//if the square root of y (the sum of squared divisors) is WHOLE, return [x,y]
let formatAnswer = (x,y) => Math.sqrt(y) % 1 === 0 ? [x,y] : undefined
//find all divisors of any integer
let findDivisors = (x) => range(1,x).filter(y => x%y === 0 || y===x)
//generate an array containing values from start to end.
//e.g. 100-500, 351-293487 etc.
let range = (start,end) => [...Array((end-start)+1)].map((x,i)=> start+i)
let squareAndSumAll = (x) => x.map(square).reduce(add)
let add = (x,y) => x + y
let square = (x) => x * x
詳細な要件は、ここで見つけることができます: https://www.codewars.com/kata/integers-recreation-one
あなたがにコードを平手打ちすることができるはずWebサイト上のウィンドウを開き、渡された入力と失敗のタイマーテストを再作成します。