【发布时间】:2017-07-23 12:23:52
【问题描述】:
我只是在学习如何编码,我现在正在使用 CodeWars 练习基础知识。由于 CodeWars 允许您查看解决方案,因此我查看了一些解决方案以寻求指导,这很有帮助。我已使用此站点作为指导,但无法弄清楚为什么我的功能不起作用。它是用 javascript 编写的。它只输出 []。这是问题、代码和输出(按以下顺序):
问题
编写一个方法,它将获取一个整数数组作为参数,并处理该数组中的每个数字。 返回一个新数组,处理输入数组的每个数字,如下所示: 如果数字有整数平方根,则取这个,否则取平方。 [4,3,9,7,2,1] -> [2,9,3,49,4,1]
代码
function squareOrSquareRoot(array) {
var newValues = []; // new array for new values
for (i = 0; i < array.length; i++){ // for loop to look through the values
var initial = array[i]; // extracting one value from the array to evaluate
var sqrt = Math.sqrt(initial); // finding the square root of initial
if (Number.isInteger(sqrt) == 'true'){ // determining if sqrt is an integer
// and if so .....
newValues.push[sqrt];
} // .... adding sqrt to the newValues array
else if (Number.isInteger(sqrt) == 'false') { // determining if sqrt is not
// an integer
newValues.push[initial*initial]; // then multiplying initial by itself
//and adding to newValues
}
}
return newArray; // returning newValues onto the screen
}
输出
Expected: '[2, 9, 3, 49, 4, 1]', instead got: '[]'
Expected: '[10, 10201, 25, 25, 1, 1]', instead got: '[]'
Expected: '[1, 4, 9, 2, 25, 36]', instead got: '[]'
【问题讨论】:
-
如果答案解决了问题,请接受答案,如果您需要更多帮助,请发表评论,以便我们为您提供帮助。
-
你必须严格使用for循环吗?如果不查看我的答案,它实际上就是您需要的一切。它使用
Array.map函数,在这种情况下,IMO 是一个更好的选择 -
我不必使用 for 循环,但我只学习了 4 周,想学习更好地使用 for 循环。顺便说一句,我真的很喜欢你的简单回答。我希望有一天能写出这样的代码。
标签: javascript arrays function loops