【问题标题】:is there a Vector Java class equivalent in javascript?javascript中是否有等效的Vector Java类?
【发布时间】:2013-10-23 19:16:53
【问题描述】:

如果要查看官方 API 中的 Java 类 Vector,有一些便利,例如创建 Vector 对象而不指定其初始长度。

可以直接向其中添加元素,而无需指定索引(如数组)。

也可以使用 .contains 来判断 Vector 集合是否包含该元素,而无需循环。

Javascript中有这样的类型吗?

【问题讨论】:

    标签: java javascript html


    【解决方案1】:

    JavaScript 数组没有固定长度,本质上等同于 Vector。

    • 您可以在任何索引处添加元素。 .length 属性跟踪最大的数字索引属性。
    • .indexOf 方法类似于.contains()。 (不要在 Java 或 JavaScript 中大量使用它。例如,Ant 版本 6 在大型项目中存在可怕的性能问题,因为代码被编写为或多或少使用 Maps 等 ArrayList 实例。如果你有任何大小且需要经常查找的集合,请使用更好的数据结构。)
    • 要将元素添加到末尾,您可以执行以下任一操作:

      someArray.push( newValue );
      

      或:

      someArray[someArray.length] = newValue;
      

    【讨论】:

    • 在 Java Vector 类中,您可以调用 .add(element) 并将其添加为最后一个元素,并动态增长。在 Javascript 中,是否可以在不指定索引的情况下做到这一点?
    • @LaneLane 将 JavaScript 数组视为变相的向量。它们是可扩展的。 =)
    【解决方案2】:

    你可以创建Array而不指定它的大小:

    var array = [];
    

    你可以在没有索引的情况下推送它:

    array.push(value);
    

    您可以检查它是否包含特定值,如下所示:

    array.indexOf(value); // returns -1 if it didn't find a match
    

    如果您需要了解有关 JavaScript 中数组的更多信息(并且仅关于它们),请查看 spec

    【讨论】:

      【解决方案3】:

      你所追求的基本上是一个简单的 JS 数组。您可以使用push() 添加到数组中,而不必担心索引。 indexOf() 的操作类似于 contains()。

      看看:

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

      【讨论】:

        猜你喜欢
        • 2014-05-05
        • 2014-04-06
        • 1970-01-01
        • 2012-05-24
        • 2011-07-05
        • 2013-07-25
        • 1970-01-01
        • 2012-05-27
        • 2020-07-28
        相关资源
        最近更新 更多