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

how to add dynamic items in a collection in javascript?

本文关键字:动态 集合 添加 javascript      更新时间:2023-09-26

我想在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)

不确定要在集合中存储什么,但在java脚本中,有两种选择可以实现集合。

首先是使用数组。例如,

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脚本对象作为哈希表。从本质上讲,每个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
}

使用push方法http://www.w3schools.com/jsref/jsref_push.asp

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