Javascript JS函数计算数组中的奇数和负数

Javascript JS函数计算数组中的奇数和负数,javascript,arrays,for-loop,arguments,Javascript,Arrays,For Loop,Arguments,我目前正在尝试编写一个JS函数,它使用多个参数来计算“数组”中的奇数和负数。我将数组放在引号中,因为函数实际上接受参数 我想使用for循环来获得赔率和负数,但我的代码不起作用 function arrayAnalyzer() { var myArray = Array.prototype.slice.call(arguments) var counter = { odds : 0, negatives : 0, avg : 0, median : 0 } for(var

我目前正在尝试编写一个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);
函数数组分析器(){
var myArray=Array.prototype.slice.call(参数)
变量计数器={
赔率:0,
负片:0,,
平均值:0,
中位数:0
}
对于(var i=0;i
我在网上发现这段代码是有效的,但如果可能的话,我想使用for循环

myArray.forEach(function(num){
    if (Math.abs(num) % 2 === 1) counter.odds++
    if (num < 0) counter.negatives++
})
myArray.forEach(函数(num){
如果(数学绝对值(num)%2==1)计数器赔率++
如果(num<0)计数器为负++
})

在您的第一条if语句中似乎有一个轻微的语法修正:

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
}
函数数组分析器(){
var myArray=Array.prototype.slice.call(参数)
变量计数器={
赔率:0,
负片:0,,
平均值:0,
中位数:0
}
对于(var i=0;i

工作JSBIN:

似乎在您的第一个if语句中使用了一个轻微的语法修复:

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
}
函数数组分析器(){
var myArray=Array.prototype.slice.call(参数)
变量计数器={
赔率:0,
负片:0,,
平均值:0,
中位数:0
}
对于(var i=0;i

工作JSBIN:

myArray{i]
中有一个输入错误。另外,你确定
myArray
正在被填充吗?再加上一点,
forEach
循环也会产生负数奇数,而你的
for
循环不会。修复
myArray之后,代码似乎可以工作{i]
输入错误,除非我遗漏了什么。一个可能的问题是:负数奇数不被计算在内。哦,天哪,这是一个非常简单的错误。谢谢你抓住了。我在chrome控制台上调试,但出于某种原因,我没有看到语法错误。谢谢大家@BeardFist你是对的,所以在这种情况下forEach会更好r方法。感谢您的建议,
myArray{i]
中有一个输入错误。另外,您确定正在填充
myArray
吗?再加上一点,
forEach
循环也会计算负数奇数,而
for
循环则不会。修复
myArray之后,代码似乎可以正常工作{i]
输入错误,除非我遗漏了什么。一个可能的问题是:负数奇数不被计算在内。哦,天哪,这是一个非常简单的错误。谢谢你抓住了。我在chrome控制台上调试,但出于某种原因,我没有看到语法错误。谢谢大家@BeardFist你是对的,所以在这种情况下forEach会更好谢谢你的建议