计算Java语言中的底数int的组

时间:2019-05-17 17:54:15

标签: javascript

我有一个整数数组 var arr = [-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0]

我想获取负数的组数,在这种情况下为2

2 个答案:

答案 0 :(得分:2)

  

否定基团的数目是负数元素的数目,该负数以非负数开头,或者它们是数组的最后一个元素。

  • 在数组上使用reduce()方法,并将累加器设置为0
  • 检查当前数字是否为负数,以及其旁边的数字是否为负数或不存在,然后递增计数器,否则不增加计数。

const groups = arr => arr.reduce((ac,a,i) => ac + (a < 0 && (!arr[i+1] || arr[i+1] >=0) ? 1 : 0 ),0)

console.log(groups([-1,-2,-1,0,-1,-2,-1,-2,-1,0,1,0]))
console.log(groups([-1,-2,-1,-2,-1,0,1,0,-1,-1]))

答案 1 :(得分:1)

如果不小于零(覆盖undefined)并且如果值小于零,则可以添加该项目的前身的支票。

const
    groups = array => array.reduce(
        (s, b, i, { [i - 1]: a }) => s + (!(a < 0) && b < 0),
        0
    );

console.log(groups([-1, -2, -1, 0, -1, -2, -1, -2, -1, 0, 1, 0]));
console.log(groups([-1, -2, -1, -2, -1, 0, 1, 0, -1, -1]));