首先,我要创建一个具有特定大小的数组。

$("#bntSize").one('click', function(e){
          var memoria = $("#memoria").val();
          console.log(memoria)

          html = "";

          for(var i = 0; i < memoria ; i++){
               html += "<div class='square' name='mem"+i+"' data-id='"+i+"' data-pos='"+i+"' >"+i+"</div>";
               arrayMemoria.push('');
          }
          console.log(arrayMemoria)
          $("#contenedor").html(html);

        });


如果备忘录等于7,我会得到:

["", "", "", "", "", "", ""]


现在,我给数组一些值:

var nada = 0;

function firstFit(){

          var cantidad = $("#ffinput").val();
          var value = $("#ffinput2").val();
          /*console.log(cantidad)*/

         if(nada == 0){
            for (nada ; nada < cantidad ; nada++) {
                arrayMemoria.splice(nada , 1 , value);
                nada = nada;
            }
         }
         else{

            for (nada; nada < arrayMemoria.length ; nada++) {
                arrayMemoria.splice(nada , 1 , value);
                nada = nada;
            }
         }


这里的候选:我想在数组和值中使用多少个空格:只是一个值。

所以如果我把=> candidad = 3并且value = A

["A", "A", "A", "", "", "", ""]


然后,如果我想输入=> candidad = 2且value = B

["A", "A", "A", "B", "B", "B", "B"]


但是我试图得到这个:

["A", "A", "A", "B", "B", "", ""]


如果我把=> candidad = 1并且value = C

["A", "A", "A", "B", "B", "C", ""]


还有我的第二个问题

如果我确实删除了等于A的值,并且我要插入=> candidad = 2 AND VALUE = D
我想得到这个:

["D", "D", "", "B", "B", "C", ""]


如何计算阵列中的可用空间?原因,如果我想插入

cantidad = 1且value = E,我需要获得第一个可用空间

["D", "D", "E", "B", "B", "C", ""]


如果有人可以帮助我!

最佳答案

您可以尝试以下代码



	var arr = ["", "", "", "", "", "", ""];
    arr = insertValue(3, "A", arr);
    console.log(arr);
    arr = insertValue(2, "B", arr);
    console.log(arr);
    arr = insertValue(1, "C", arr);
    console.log(arr)
    arr = removeValue("A", arr);
    console.log(arr)
    arr = insertValue(2, "D", arr);
    console.log(arr)


	function insertValue(cantidad, value, arr){
		var arrLength = arr.length;
		var count = 0;
		for (var i = 0; i < arrLength; i++) {
			if(arr[i] == "" && count < cantidad){
				arr[i] = value;
				count ++;
			}
		};
      return arr;
	}

	function removeValue(value, arr){
		var arrLength = arr.length;
		for (var i = 0; i < arrLength; i++) {
			if(arr[i] == value){
				arr[i] = "";
			}
		};
      return arr;
	}





编辑:获取数组中的空格数



var arr = ["A", "A", " " , " ", " " , "B" ,"C " , " "];
var  spaceCount = 0;

arr.forEach(function(i) { if(i == " ") spaceCount++;  });
console.log(spaceCount)





编辑2:计数数组中的连续空格



var arr = ["A", "A", " " , " ", " " , "B"," ", " " ,"C " , " "];
var count = 1;
var countArr = [];

for (var i = 0; i < arr.length; i++) {
	if(arr[i] == " "){
		if(arr[i+1] == arr[i]){
			count ++;
		}else {
			countArr.push(count);
			count = 1;
		}
	}
};

console.log(countArr)





编辑3:要获取连续的空间计数+起始位置



var arr = [" ", "A", "A", " " , " ", " " , "B"," ", " " ,"C " , " "];
var count = 1;
var countArr = [];

var pos = 0;

for (var i = 0; i < arr.length; i++) {
	if(arr[i] == " "){
		if(arr[i] === arr[i+1]){
			count ++;
		}else {
			countArr.push({'pos': pos, 'count': count});
			count = 1;
		}
	}else{
		pos = i+1;
	}
};

console.log(countArr)

10-07 19:50
查看更多