【发布时间】:2016-07-05 21:39:02
【问题描述】:
我目前正在尝试编写一个 JS 函数,该函数接受多个参数来计算或统计“数组”中的奇数和负数。我将数组放在引号中,因为该函数实际上接受了参数。
我想使用 for 循环来获取赔率和负数,但我的代码不起作用。
function arrayAnalyzer() {
var myArray = Array.prototype.slice.call(arguments)
var counter = {
odds : 0,
negatives : 0,
avg : 0,
median : 0
}
for(var i = 0; i < myArray.length; i++) {
if(myArray{i] % 2 === 1) {
counter.odds++ }
if(myArray[i] < 0) {
counter.negatives++ }
}
return counter
}
arrayAnalyzer(7, -3, 0, 12, 44, -5, 3);
我在网上发现这段代码可以工作,但如果可能的话,我想使用 for 循环。
myArray.forEach(function(num){
if (Math.abs(num) % 2 === 1) counter.odds++
if (num < 0) counter.negatives++
})
【问题讨论】:
-
myArray{i]中有错字...另外,您确定myArray正在填充吗? -
只是补充一点,
forEach循环还可以解释您的for循环没有的负奇数。 -
修复
myArray{i]错字后代码似乎可以工作,除非我遗漏了什么。一个可能的问题:不计算负奇数。 -
天哪,这是一个非常简单的错误。谢谢你抓住那个。我在 chrome 控制台上调试,但由于某种原因,我没有看到那个语法错误。谢谢大家@BeardFist 你是对的,所以在这种情况下, forEach 将是一个更好的方法来做到这一点。感谢您的建议
标签: javascript arrays for-loop arguments