我一直在想我是否可以消除下面的函數中的重複行,但一直無法到達非遞歸解決方案。是否可以非遞歸編寫此函數而沒有冗餘行?
只是出於好奇,有沒有辦法消除重複的行,但沒有遞歸?
function accumulateOverProtos(obj, propName) {
var accumulator = []
if (obj.hasOwnProperty(propName)) accumulator.push(obj[propName])
while (obj = Object.getPrototypeOf(obj)) {
if (obj.hasOwnProperty(propName)) accumulator.push(obj[propName])
}
return accumulator
}
此外,任何人都可以指點我對這種事情的一些閱讀?這個問題叫什麼?
?? ??我在代碼中看不到任何遞歸。 – Pointy
沒有遞歸,但我已經到達了沒有冗餘的遞歸解決方案。只是沒有發佈。 –
您正在尋找'do while'循環。 – SLaks