首页 > 解决方案 > 在没有拼接或推送命令的情况下插入值

问题描述

我目前正在编写一些代码,以在不使用 splice 或 push 命令的情况下将用户输入的变量插入到指定数组。我决定尝试使用 while 命令,因为这对我来说最有意义,因为我对 javascript 非常陌生。当我尝试显示任何内容时。

var array = []; // Flobal array to hold array
var d = ""; // Global string for output 

function fillArray() {
  // call function to clear the display values
  clearDisplay();
  // simple loop hard coded to 100 to set array values
  for (var i = 0; i < 100; i++) {
    array[i] = Math.floor(Math.random() * 100 + 1);
  }
  // call function to display the array
  displayArray();
}

function clearDisplay() {
  //Global string d is used to hold display
  d = "";
  // The div element named output is used to display output
  document.getElementById("output").innerHTML = "";
}

function displayArray() {
  // simple loop to add array values to string d
  for (var i = 0; i < array.length - 1; i++) {
    d += i + ' : ' + array[i] + "<br/>";
  }
  document.getElementById("output").innerHTML = d;
}
//-------------------------------------------------------

//Scan array and insert into index
function insertArray() {
  var m = parseInt(document.getElementById("index").value);
  var n = parseInt(document.getElementById("value").value);

  while (i < m) {
    i++;
  }
  if (i == m) {
    array[i] == n;
  }
  displayArray();
}

标签: javascriptarrays

解决方案


您可以使用以下代码将元素添加到数组中,而无需在给定索引处使用 splice 或 push 命令。看insertArray函数的实现,我把错误的代码注释掉了,写了新的一行。

var array = []; // Flobal array to hold array
var d = ""; // Global string for output 

function fillArray() {
  // call function to clear the display values
  clearDisplay();
  // simple loop hard coded to 100 to set array values
  for (var i = 0; i < 100; i++) {
    array[i] = Math.floor(Math.random() * 100 + 1);
  }
  // call function to display the array
  //displayArray();
}

function clearDisplay() {
  //Global string d is used to hold display
  d = "";
  // The div element named output is used to display output
  document.getElementById("output").innerHTML = "";
}

function displayArray() {
  // simple loop to add array values to string d
  for (var i = 0; i < array.length - 1; i++) {
    d += i + ' : ' + array[i] + " ";
  }
  document.getElementById("output").innerHTML = d;
}
//-------------------------------------------------------

//Scan array and insert into index
function insertArray() {

  var m = parseInt(document.getElementById("index").value);
  var n = parseInt(document.getElementById("value").value);
  
  var temp = array[m];
  array[m] = n;
  for (var i = m+1; i < 100; i++) {
    array[i] = temp;
    temp = array[i];
  }

/*
  while (i < m) {
    i++;
  }
  if (i == m) {
    array[i] = n;
  }
*/
displayArray();
}

fillArray();
<p>Output: </p>
<input type="text" id="index">
<input type="text" id="value">
<button onClick="insertArray();">Insert</button>
<hr>
<div id="output">
</div>

请让我知道这是否是您想要的。


推荐阅读