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

标签 javascript arrays stack

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

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

  }

每次点击按钮,控制台都会更新数组,将用户输入的任何内容推送到我也制作的 HTML 文本字段中。我向 friend 展示了它,他们告诉我,这种方法有点作弊,因为我正在制作一堆堆栈,并且有一种方法可以...

Implement a Stack using only an index, a count, and an array.

从概念上讲,我知道它们是什么,索引是给定数组中的对象位置,数组是相同变量类型的对象的集合,计数表面上是计数(如果我错了,请纠正我? )。然而,作为计算机科学第一学期的学生,将这些概念结合在一起来实现堆栈有点超出了我的能力,有没有一种通俗易懂的方式来解释如何将这些东西结合在一起来实现堆栈?

最佳答案

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

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;
}

或者,对于pop:

pop() {
    const item = this.array[this.array.length - 1];
    this.array.length = Math.max(this.array.length - 1, 0);
    return item;
}

请记住,push 返回数组的新长度,因此 const arrays = this.array.push(String(this.userInput)) 不会给你一个数组作为返回。

关于javascript - 使用数组、计数和索引实现堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59524781/

相关文章:

c++ - 堆栈和堆溢出利用意味着什么

javascript - 根据 JSON 的值和 JSON 数组的键合并一个 JSON 和 JSON 数组

javascript - 提高 iPhone 4 设备 (iOS 7) 中的本地存储性能

javascript - 类型 number[][] 不可分配给类型 number[]

c 指针和数组

java - 使用 Jackson 将 Json 数组拆分为单个 Json 元素

amazon-web-services - 如何将主堆栈模板的重复组件用于子堆栈模板中的多个参数?

c - 简单的堆栈程序不接受输入并崩溃

javascript - 什么时候应该在 JavaScript 中使用双引号或单引号?

javascript - 改进正则表达式以匹配列表中的重复项