Javascript 使用数组、计数和索引实现堆栈

Javascript 使用数组、计数和索引实现堆栈,javascript,arrays,stack,Javascript,Arrays,Stack,因此,我制作了一个函数,通过使用内置的.push函数将用户输入的字符串推送到堆栈中,如下所示: push() { const arrays = this.array.push(String(this.userInput)) console.log(this.array) } 每点击一次按钮,控制台就会更新数组,将用户输入的任何内容输入到我创建的HTML文本字段中。我把它给一个朋友看,他们告诉我,这种方法有点作弊,因为我正在做一堆,有一种方法可以 仅使用索引、计数和数组实现

因此,我制作了一个函数,通过使用内置的.push函数将用户输入的字符串推送到堆栈中,如下所示:

push() {
    const arrays = this.array.push(String(this.userInput))
    console.log(this.array)

  }
每点击一次按钮,控制台就会更新数组,将用户输入的任何内容输入到我创建的HTML文本字段中。我把它给一个朋友看,他们告诉我,这种方法有点作弊,因为我正在做一堆,有一种方法可以

仅使用索引、计数和数组实现堆栈


从概念上讲,我知道这些是什么,索引是给定数组中的一个对象位置,数组是相同变量类型的对象集合,计数表面上是一个计数。如果我错了,请纠正我?。然而,作为第一学期计算机科学专业的学生,将这些概念结合在一起实现堆栈有点超出我的理解范围。是否有一种外行术语的方式来解释如何将这些东西结合在一起实现堆栈?

若要在不使用内置推送方法的情况下执行您正在执行的操作,只需按数组的当前长度分配给索引。无需跟踪任何其他变量:

push() {
    this.array[this.array.length] = String(this.userInput);
    // if you also need your implementation to return the new length, then:
    return this.array.length;
}
或者,对于流行音乐:


请记住,push返回数组的新长度,因此const arrays=this.array.pushStringthis.userInput不会返回数组。

我正在创建一个堆栈不,您仍然只有一个字符串堆栈。不确定你的代码出了什么问题,你是说禁止使用推送,还是什么?不,没有什么不对,它工作得很好,我更好奇的是问题的主要部分是如何仅使用数组实现此功能,索引和计数不能使用内置的.push,反之也可以使用pop。我也被这句话弄糊涂了,因为控制台日志只是在下一个索引位置吐出带有用户输入项的数组A好的,所以它会返回新的长度,但也会在后台更新整个数组?另外,我尝试了上面的方法,它对push非常有效,但是对于pop,它似乎只对内置的push方法起作用。如果您想模拟这种情况,那么您必须在数组上创建一个属性并分别返回新的长度。例如,如果我有一个带有[4,5,6]的数组,当我第一次弹出控制台输出[4,5,未定义],然后当我再次弹出时,它仍然得到[4,5,未定义],我认为delete会更新数组长度,但我想不是。重新指定数组长度instead我认为删除操作使数组长度保持不变,但只是从元素中删除数据
pop() {
    const item = this.array[this.array.length - 1];
    this.array.length = Math.max(this.array.length - 1, 0);
    return item;
}