Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在数组javascript中获取连续空格_Javascript_Arrays - Fatal编程技术网

如何在数组javascript中获取连续空格

如何在数组javascript中获取连续空格,javascript,arrays,Javascript,Arrays,我有这个功能: function insertValue2(cantidad, value, arr){ var spaceCount = 0; arr.forEach(function(item, index) { if(item == "") { console.log(index) spacecount++; } }); console.log(spaceCount) 我的函数计算此数组中的空格数:

我有这个功能:

 function insertValue2(cantidad, value, arr){

  var  spaceCount = 0;

    arr.forEach(function(item, index) { 
      if(item == "") {
        console.log(index)
        spacecount++;
      }
    });
  console.log(spaceCount)
我的函数计算此数组中的空格数:
[“”、“”、“”、“”B、“”B、“”、“”]

因此,结果是:
01126
是数组中带有空格的位置,
spacecount=4

我不知道这是否可行,但在我得到第一个B之前,你知道如何计算空白吗

我的意思是计算连续的空格,比如
0 1 2 spacecount=3
,然后计算
6 spacecount=1

如果我想在数组中插入
quantity=1
value=C
,则将为spacecount选择最低值

编辑:

数量是我将在数组中使用的空间数量,我不想使用超过数量所需的空间

在这个数组中,我在
0,1,2,7,8,9,10位置有空格

如果我想插入
quantity=2
value=D
,预期结果是:

如果我想插入
quantity=1和value=“E”
,它将选择
位置2
,并使用
spacecount=1
保存 空间计数越高,数量越大,如3或4

[“D”、“D”、“E”、“B”、“B”、“B”、“C”、“D”、“E”、“B”、“C”、“C”、“D”、“D”、“E”、“B”、“B”、“B”、“C”、“C”、“C”、“C”、“D”、“D”、“D”、“E”、“B”、“B”、“B”、“B”、“C”、“C”、“C”、“C”、“C”、“D”、“D”、“C”、“C”、“C”、“

谢谢您的帮助:)

尝试使用计数器

我第一次用计数器检查im是空白还是其他字符。如果计数器=0->数量+,计数器=1;此外,如果循环找到notwhitespace,计数器将再次更改为0

var arr = ["", "", "", "B", "B", "B", "C", "" , "" ,"" ,""];

var spacecount=0;
var quantity=0;
var contador=0;

arr.forEach(function(item, index) { 
  if(item == "") {
    if(contador==0){
      quantity++;
      contador=1;
      spacecount=0;
    }
    spacecount++;
  }else{
    contador=0;
  }
});

console.log('spacecount: '+spacecount);
console.log('quantity: '+quantity);
尝试使用计数器

我第一次用计数器检查im是空白还是其他字符。如果计数器=0->数量+,计数器=1;此外,如果循环找到notwhitespace,计数器将再次更改为0

var arr = ["", "", "", "B", "B", "B", "C", "" , "" ,"" ,""];

var spacecount=0;
var quantity=0;
var contador=0;

arr.forEach(function(item, index) { 
  if(item == "") {
    if(contador==0){
      quantity++;
      contador=1;
      spacecount=0;
    }
    spacecount++;
  }else{
    contador=0;
  }
});

console.log('spacecount: '+spacecount);
console.log('quantity: '+quantity);

您只需在数组上迭代一次,检查项目是否为空,并保留数组数组,其中每个项目都是一组具有所需值的索引,在本例中为空字符串

一种方法是扩展数组对象本身:(请参阅控制台了解结果)

Array.prototype.groupBy=函数(值){
var数组=这个;
var组=[];
var缓冲区=[];
对于(var i=0;i0){
推送(缓冲);
缓冲区=[];
}
}
如果(buffer.length>0)
推送(缓冲);
返回组;
};
变量a=[“”、“”、“”、“”、“”B、“”B、“”B、“”、“”];
var ConcertiveBlankspaces=a.groupBy(“”);
console.log(“+连续空格的总数.长度+”组空格”);
for(var i=0;i<连续空格.length;i++){
console.log('找到一个由'+
连续空格[i]。长度+'项,索引:'+
连续空格[i]);

}
您只需在数组上迭代一次,检查是否存在项并保留数组数组,其中每个项都是一组具有所需值的索引,在您的情况下为空字符串

一种方法是扩展数组对象本身:(请参阅控制台了解结果)

Array.prototype.groupBy=函数(值){
var数组=这个;
var组=[];
var缓冲区=[];
对于(var i=0;i0){
推送(缓冲);
缓冲区=[];
}
}
如果(buffer.length>0)
推送(缓冲);
返回组;
};
变量a=[“”、“”、“”、“”、“”B、“”B、“”B、“”、“”];
var ConcertiveBlankspaces=a.groupBy(“”);
console.log(“+连续空格的总数.长度+”组空格”);
for(var i=0;i<连续空格.length;i++){
console.log('找到一个由'+
连续空格[i]。长度+'项,索引:'+
连续空格[i]);

}
此方案首先查找所有空间,对其进行计数,并尽量减少插槽中剩余的空白空间。然后将该值应用于插槽

函数插入(数组、值、计数){
var i,
空格=数据.reduce(函数(r,a,i,aa){
如果(a==''){
如果(aa[i-1]=''){
r[r.length-1].count++;
}否则{
r、 push({index:i,count:1});
}
}
返回r;
}, []),
索引=空格.reduce(函数(r,a){
返回a.count

.as console wrapper{max height:100%!important;top:0;}
此方案首先查找所有空间,对它们进行计数,并尽量减少插槽中剩余的空白空间。然后将该值应用于插槽

函数插入(数组、值、计数){
var i,
空格=数据.reduce(函数(r,a,i,aa){
如果(a==''){
如果(aa[i-1]=''){
R