如何在javascript中添加集合中的动态项?

时间:2011-09-19 07:21:11

标签: javascript asp.net collections

我想在javascript中添加一个集合中的元素数量,如下面的vb代码所做

    Dim myList As New List(Of String)


    Dim i As Integer
    For i = 0 To rep_UnAssignComps.Items.Count
        myList.Add(i)
    Next

我想将此集合与特定值进行比较。还提供了用于比较值的语法。像

myList.Contains(val1)

3 个答案:

答案 0 :(得分:3)

不确定要存储在集合中的内容,但在java脚本中,您有两种选择来实现集合。

首先是使用arrays。例如,

var arr = [];  // empty array
arr.push('A');
arr.push('B');
arr.push('C');
alert(arr.length); // alerts 3
alert(arr[1]);     // alerts B (zero based indexing)

要检查是否存在任何元素,您必须在每个索引处的数组比较元素上运行循环。

另一种方法是使用java-script对象作为哈希表。实质上,每个java脚本对象都可以具有多个基本上是名称 - 值对的属性。例如,

var o = { } // empty object
o["prop1"] = "A";   // Added property named prop1 with value "A"
o["prop2"] = "B";   // Added property named prop2 with value "B"
o["prop3"] = "C";   // Added property named prop2 with value "C"
alert(o["prop1"]);  // alerts A
alert(o.prop2);     // alerts B - notice alternate syntax
alert(o["prop4"]);     // alerts undefined - because we are accessing non-existent property
if (o["prop3"]) {
  alert("prop3 exists");  // to check for some property
}
for (p in o) {  // iterate all properties
  alert(p);     // alerts property name
  alert(o[p]);  // alerts property value
}

答案 1 :(得分:0)

答案 2 :(得分:0)

var myList = []
var i = 0;

如果“rep_UnAssignComps”是用于循环的数组,则用于

if (rep_UnAssignComps instanceof Array) {
    for (i = 0; i < rep_UnAssignComps.length; i++){
       myList.push(i);
    }
}else {
    for(var name in rep_UnAssignComps){
        if (rep_UnAssignComps.hasOwnProperty(name)){
            myList.push(i);
            i++;
        }
    }
}

比较使用:

//Returns the first index at which a given element can be found in the array, or -1 if it is not present
myList.indexOf(val1);