【问题标题】:Creating array collection in JavaScript?在 JavaScript 中创建数组集合?
【发布时间】:2011-03-28 07:07:29
【问题描述】:

是否可以在 JavaScript 中创建数组集合?如果是这样,我该怎么做?如果我有一些数据:例如 1-5。

【问题讨论】:

    标签: javascript jquery arrays object collections


    【解决方案1】:

    我其实不太明白你想做什么,但你可以创建一个包含数字 1 到 5 的 Javascript 数组,如下所示:

    var myArray = [1, 2, 3, 4, 5];
    

    【讨论】:

    • 这是迄今为止最合理的答案。简单且不充满错误。
    【解决方案2】:

    这是创建数组集合的简单方法

            var createCollection = function() {
              //Define a blank array
              this.employee = [];
    
              //Creating first object and push it into array
              var emp1 = {
                'Name': 'ABC',
                'Age': 30,
                'Profession': 'Software'
              };
              this.employee.push(emp1);
    
              //Creating Second object and push it into array
              var emp2 = {
                'Name': 'CDE',
                'Age': 21,
                'Profession': 'Advocate'
              };
              this.employee.push(emp2);
    
              //Creating Third object and push it into array
              var emp3 = {
                'Name': 'RTY',
                'Age': 22,
                'Profession': 'Teacher'
              };
              this.employee.push(emp3);
    
            };
    
        var createCollection = new createCollection();
        //returns the length of the collection
        alert(createCollection.employee.length);
        //You can access the value from Array collection either through indexing or looping
        alert(createCollection.employee[0].Name);
        alert(createCollection.employee[0].Age);
        alert(createCollection.employee[0].Profession);
    

    【讨论】:

      【解决方案3】:

      JavaScript 数组的 A-Z

      检查这个link

      如果你想填充一个数组

      var tmpArray = new Array (4);
      tmpArray [0] = "a";
      tmpArray [1] = "b";
      tmpArray [2] = "c";
      tmpArray [3] = "d";
      

      或者

      var tmpArray= new Array ("a", "b", "c", "d"); 
      

      【讨论】:

      • 与上一个示例相比,您应该始终更喜欢文字语法。第一个示例是使用非常容易出错的单参数构造函数,这绝不是一个好主意。使用push 方法更简洁,几乎不会对性能产生影响。
      • 我只是提供了各种方法,谢谢你的建议。
      • @Jakob 这只是风格选择的问题。不是投反对票的正当理由。
      • @Raynos:第一个容易出错,就像说使用with是一个选择问题;如果可能的话,应该避免。我同意第二个例子是一个选择问题,你就在那里。它仍然非常单一(如果这是一个词)并且速度也较慢,因为它强制解释器检查范围链以查看是否已定义 Array。并不是说我认为这么小的事情很重要,但我的观点是,这不仅仅是一种风格选择(即使 95% 如此)。
      • @Jakob 是的 with 很糟糕。它不容易出错,如果人们不明白调用 Array(len) 会创建一个新的 Array,其中 len 元素全部初始化为字面值 undefined,那么这是他们自己的错。如果您想要这种行为,使用 new Array(len) 是有效的。区别在于速度与可读性、样式一致性和维护相比可以忽略不计。
      【解决方案4】:

      如果您想要更复杂的数据集合,可以使用data.js 抽象库。

      如果您更具体地了解您想要什么,我可以给您举个例子。

      【讨论】:

      • 认真的吗?你建议使用 library 来创建数组?
      • @Theo 没有。我建议一个用于创建集合的库。我真的取决于他对数据的处理方式。投反对票的警察是否在这里进行了轰炸?这个问题很模糊,也许他想要一个复杂的数据结构。
      【解决方案5】:

      你可以创建对象:

      var obj = {
         my1 : 'data',
         my2 : 'other'
      };
      

      或者

        var array = ['data',  'other'];
      

      访问所有可以访问的数据

      for(var key in array) {
       item = array[key];
      }
      
      for(var key in obj) {
        item = obj[key];
      }
      

      【讨论】:

      • 啊,永远不要使用for (.. in ..) 来遍历数组。为了您自己,您真的应该阅读更多有关它的信息!相反,使用:for ( var i=0; i<array.length; i++) { item = array[i]; } 甚至更好,forEach 来自 JavaScript 1.6(或其替代品来自 jQuery、原型、下划线或任何其他 jslib)。
      • @Jakob 如果您要纠正某人,至少要正确。原生的 forEach 和 jQuery、原型或下划线抽象NOT 更快。 benchmark.
      • 如果你理解使用的话,使用起来还不错(for .. in .. )。
      • @Raynos:从未说过它更快。带有索引的 for 循环肯定比其他方法快。 @Liutas, for (.. in ..) 不应该完全避免,当然你可以像你一样将它用于对象。但是,对于数组,你永远不应该这样做。让我给你举个例子。
      • @Jakob 哇,我似乎误读得越快越好。我同意不要使用for in。要么使用 each 抽象并将其视为枚举器,要么使用 for 循环并将其视为过程迭代器。就个人而言,如果我想将其视为数组,我总是使用for。当我将数组视为 Set 时,我使用 each 抽象。
      猜你喜欢
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 2023-01-28
      • 2019-02-19
      • 2022-01-20
      • 1970-01-01
      • 2022-09-26
      • 1970-01-01
      相关资源
      最近更新 更多