javascript - 在没有拼接或推送命令的情况下插入值
问题描述
我目前正在编写一些代码,以在不使用 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();
}
解决方案
您可以使用以下代码将元素添加到数组中,而无需在给定索引处使用 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>
请让我知道这是否是您想要的。
推荐阅读
- html - 箭头之间的面包屑空间
- r - 获取模型的值(类型 S4)?(protest 包)
- virtual-machine - 对一个 VirtualBox VM 的更改影响另一个
- openedge - 类中的公共无效为假时循环
- google-chrome - 在 Chrome 上访问 GCP 负载平衡器后面的内容时出现 ERR_CONNECTION_CLOSED
- r - 为什么在 R 中找不到对象“值”?
- python - 从视频中读取的 cv2 帧与从重新创建的视频中读取的帧不同
- aix - 了解 AIX 上的转储 -H 输出
- c# - 有没有办法定义一种“通用”函数用作 linq 顺序选择器
- python-3.x - 如何使用 Python 脚本为 Excel 工作表中的值形成一对多关系?