首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在数组javascript的特定位置插入值

在数组javascript的特定位置插入值
EN

Stack Overflow用户
提问于 2016-11-07 04:15:11
回答 3查看 121关注 0票数 2

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

代码语言:javascript
复制
$("#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,我就明白了:

代码语言:javascript
复制
["", "", "", "", "", "", ""]

现在,我给数组提供了一些值:

代码语言:javascript
复制
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;
            }
         }

在这里,悬臂:,我应该在数组中使用多少空格&值:只是一个值。

因此,如果我把=>悬臂=3和值=A

代码语言:javascript
复制
["A", "A", "A", "", "", "", ""]

如果我想让=>悬臂=2和值=B

代码语言:javascript
复制
["A", "A", "A", "B", "B", "B", "B"]

但我想得到的是:

代码语言:javascript
复制
["A", "A", "A", "B", "B", "", ""]

如果我把=>悬臂=1和值=C

代码语言:javascript
复制
["A", "A", "A", "B", "B", "C", ""]

与我的第二个问题

如果确实删除等于A的值,并且插入=>悬臂梁=2和VALUE =D,则应该得到以下结果:

代码语言:javascript
复制
["D", "D", "", "B", "B", "C", ""]

如何计算数组中的可用空间?因为如果我想插入

悬臂=1和值=E,我需要得到第一个可用的空间

代码语言:javascript
复制
["D", "D", "E", "B", "B", "C", ""]

如果有人能帮我!!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-07 05:14:56

您可以尝试以下代码

代码语言:javascript
复制
	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;
	}

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

代码语言:javascript
复制
var arr = ["A", "A", " " , " ", " " , "B" ,"C " , " "];
var  spaceCount = 0; 

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

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

代码语言:javascript
复制
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:获得连续空格计数+起始位置

代码语言:javascript
复制
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)

票数 1
EN

Stack Overflow用户

发布于 2016-11-07 05:26:59

代码语言:javascript
复制
  var array = ["A", "", "", "", "B", "B", "B"];

  var cantidad = 2;
  for (var x = 0; x < array.length; x++) {
    if (array[x] === "") {
      if (cantidad >0){
        array.splice(x, 1, "C");
        cantidad--;
      }
    }
  }

  function codeAddress() {
    alert(array);
  }

  window.onload = codeAddress;

这里有一个解决方案,我意识到你可以用很多不同的方式解决这个问题,我的方法不一定是最好的方法。

祝好运。

票数 1
EN

Stack Overflow用户

发布于 2016-11-07 05:00:30

编辑:这是两个问题的有效解决方案。

代码语言:javascript
复制
var array = ["","","","","","",""];

function addValues(num, value) {
    for(var i=0; i<num; i++) {
        for(var j=0; j<array.length; j++){
            if(array[j] ==="") {
                array[j] = value;
                break;
            }
        }
    }
}

function removeValues(value) {
    for(var i=0; i<array.length; i++) {
        if(array.indexOf(value) !== -1) {
            array[i] = "";
        }
    }

}
addValues(3, 'A');
addValues(2, 'B');
addValues(1, 'C');

removeValues('A');

addValues(2, 'D');
addValues(2, 'E');

console.log(array);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40457763

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档