【发布时间】:2011-03-28 07:07:29
【问题描述】:
是否可以在 JavaScript 中创建数组集合?如果是这样,我该怎么做?如果我有一些数据:例如 1-5。
【问题讨论】:
标签: javascript jquery arrays object collections
是否可以在 JavaScript 中创建数组集合?如果是这样,我该怎么做?如果我有一些数据:例如 1-5。
【问题讨论】:
标签: javascript jquery arrays object collections
我其实不太明白你想做什么,但你可以创建一个包含数字 1 到 5 的 Javascript 数组,如下所示:
var myArray = [1, 2, 3, 4, 5];
【讨论】:
这是创建数组集合的简单方法
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);
【讨论】:
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 方法更简洁,几乎不会对性能产生影响。
with是一个选择问题;如果可能的话,应该避免。我同意第二个例子是一个选择问题,你就在那里。它仍然非常单一(如果这是一个词)并且速度也较慢,因为它强制解释器检查范围链以查看是否已定义 Array。并不是说我认为这么小的事情很重要,但我的观点是,这不仅仅是一种风格选择(即使 95% 如此)。
with 很糟糕。它不容易出错,如果人们不明白调用 Array(len) 会创建一个新的 Array,其中 len 元素全部初始化为字面值 undefined,那么这是他们自己的错。如果您想要这种行为,使用 new Array(len) 是有效的。区别在于速度与可读性、样式一致性和维护相比可以忽略不计。
如果您想要更复杂的数据集合,可以使用data.js 抽象库。
如果您更具体地了解您想要什么,我可以给您举个例子。
【讨论】:
你可以创建对象:
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)。
for in。要么使用 each 抽象并将其视为枚举器,要么使用 for 循环并将其视为过程迭代器。就个人而言,如果我想将其视为数组,我总是使用for。当我将数组视为 Set 时,我使用 each 抽象。