Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBScript匿名关联数组?(类似于Javascript)_Javascript_Arrays_Vbscript_Associative - Fatal编程技术网

VBScript匿名关联数组?(类似于Javascript)

VBScript匿名关联数组?(类似于Javascript),javascript,arrays,vbscript,associative,Javascript,Arrays,Vbscript,Associative,精通Javascript和PHP的人知道如何使用对象构造函数来引用匿名关联数组,如下所示: myFunction({ "param1" : "value1", "param2" : "value2" }); <% Function Img(aParamArray) Dim oImageTag,aImageTagKeys, val, param, key, output Set oImageTag = CreateObject("Scripting.Dict

精通Javascript和PHP的人知道如何使用对象构造函数来引用匿名关联数组,如下所示:

myFunction({
    "param1" : "value1",
    "param2" : "value2"
});
<%
Function Img(aParamArray)
    Dim oImageTag,aImageTagKeys, val, param, key, output
    Set oImageTag = CreateObject("Scripting.Dictionary")
    oImageTag("src") = ""
    oImageTag("alt") = ""
    oImageTag("class") = ""
    oImageTag("id") = ""
    oImageTag("width") = ""
    oImageTag("height") = ""
    oImageTag("usemap") = ""
    oImageTag("title") = ""
    oImageTag("style") = ""
    oImageTag("dir") = ""
    oImageTag("lang") = ""
    oImageTag("ismap") = ""
    oImageTag("onabort") = ""
    oImageTag("onclick") = ""
    oImageTag("ondblclick") = ""
    oImageTag("onmousedown") = ""
    oImageTag("onmouseout") = ""
    oImageTag("onmouseover") = ""
    oImageTag("onmouseup") = ""
    oImageTag("onkeydown") = ""
    oImageTag("onkeypress") = ""
    oImageTag("onkeyup") = ""

    For Each param In aParamArray
        val = Split(param, "::")
        If Ubound(val) = 1 Then
            If oImageTag.Exists(val(0)) Then
                oImageTag(val(0)) = val(1)
            End If
        End If
    Next

    aImageTagKeys = oImageTag.Keys
    Img = "<img "
    For Each key in aImageTagKeys
        If oImageTag(key) <> "" Then
            Img = Img & key & "=""" & oImageTag(key) & """ "
        End If
    Next

    If iDocType = 0 Or iDocType = 1 Or iDocType = 6 Then
        Img = Img & ">"
    Else
        Img = Img & "/>"
    End If
End Function
%>
好处是不必命名目标函数的每个参数,并且能够设置默认值。有人知道如何在VBScript中构建类似的语句吗?我在研究Dictionary类,但我认为在我看到一个例子之前,我不会牢牢掌握如何利用它来发挥我的优势


谢谢,

Dictionary对象正是您要查找的对象。我已经成功地将其用于站点的多语言蒙皮。使用起来并不困难


请参阅:
http://www.devguru.com/technologies/vbscript/13992.asp

Dictionary对象正是您要查找的对象。我已经成功地将其用于站点的多语言蒙皮。使用起来并不困难


请参阅:
http://www.devguru.com/technologies/vbscript/13992.asp

你是对的,它不难使用。这只是一个用普通数组进行创作的问题。以下是我所做的:

<%
    Function Img(aParamArray)
        Dim oImageTag,aImageTagKeys, val, param, key, output
        Set oImageTag = CreateObject("Scripting.Dictionary")

        For Each param In aParamArray
            val = Split(param, "::")
            If Ubound(val) = 1 Then
                oImageTag(val(0)) = val(1)
            End If
        Next

        aImageTagKeys = oImageTag.Keys
        Img = "<img "
        For Each key in aImageTagKeys
            If oImageTag(key) <> "" Then
                Img = Img & key & "=""" & oImageTag(key) & """ "
            End If
        Next

        If iDocType = 0 Or iDocType = 1 Or iDocType = 6 Then
            Img = Img & ">"
        Else
            Img = Img & "/>"
        End If
    End Function
%>
”
其他的
Img=Img&“/>”
如果结束
端函数
%>
这样称呼它:

myFunction({
    "param1" : "value1",
    "param2" : "value2"
});
<%
Function Img(aParamArray)
    Dim oImageTag,aImageTagKeys, val, param, key, output
    Set oImageTag = CreateObject("Scripting.Dictionary")
    oImageTag("src") = ""
    oImageTag("alt") = ""
    oImageTag("class") = ""
    oImageTag("id") = ""
    oImageTag("width") = ""
    oImageTag("height") = ""
    oImageTag("usemap") = ""
    oImageTag("title") = ""
    oImageTag("style") = ""
    oImageTag("dir") = ""
    oImageTag("lang") = ""
    oImageTag("ismap") = ""
    oImageTag("onabort") = ""
    oImageTag("onclick") = ""
    oImageTag("ondblclick") = ""
    oImageTag("onmousedown") = ""
    oImageTag("onmouseout") = ""
    oImageTag("onmouseover") = ""
    oImageTag("onmouseup") = ""
    oImageTag("onkeydown") = ""
    oImageTag("onkeypress") = ""
    oImageTag("onkeyup") = ""

    For Each param In aParamArray
        val = Split(param, "::")
        If Ubound(val) = 1 Then
            If oImageTag.Exists(val(0)) Then
                oImageTag(val(0)) = val(1)
            End If
        End If
    Next

    aImageTagKeys = oImageTag.Keys
    Img = "<img "
    For Each key in aImageTagKeys
        If oImageTag(key) <> "" Then
            Img = Img & key & "=""" & oImageTag(key) & """ "
        End If
    Next

    If iDocType = 0 Or iDocType = 1 Or iDocType = 6 Then
        Img = Img & ">"
    Else
        Img = Img & "/>"
    End If
End Function
%>

现在,无论doctype是什么,我都可以轻松地控制图像标记的输出,并且从SQL server输出图像将更加容易,因为我可以从一个正常索引的数组中生成一个伪关联数组

解决这个问题的关键不是制作图像标签,而是基于几个因素和SQL server中的数据构建数据和表单的完整视图,但我需要简化它来解决这个问题。现在它工作得很好


谢谢你的建议!

你说得对,使用起来并不困难。这只是一个用普通数组进行创作的问题。以下是我所做的:

<%
    Function Img(aParamArray)
        Dim oImageTag,aImageTagKeys, val, param, key, output
        Set oImageTag = CreateObject("Scripting.Dictionary")

        For Each param In aParamArray
            val = Split(param, "::")
            If Ubound(val) = 1 Then
                oImageTag(val(0)) = val(1)
            End If
        Next

        aImageTagKeys = oImageTag.Keys
        Img = "<img "
        For Each key in aImageTagKeys
            If oImageTag(key) <> "" Then
                Img = Img & key & "=""" & oImageTag(key) & """ "
            End If
        Next

        If iDocType = 0 Or iDocType = 1 Or iDocType = 6 Then
            Img = Img & ">"
        Else
            Img = Img & "/>"
        End If
    End Function
%>
”
其他的
Img=Img&“/>”
如果结束
端函数
%>
这样称呼它:

myFunction({
    "param1" : "value1",
    "param2" : "value2"
});
<%
Function Img(aParamArray)
    Dim oImageTag,aImageTagKeys, val, param, key, output
    Set oImageTag = CreateObject("Scripting.Dictionary")
    oImageTag("src") = ""
    oImageTag("alt") = ""
    oImageTag("class") = ""
    oImageTag("id") = ""
    oImageTag("width") = ""
    oImageTag("height") = ""
    oImageTag("usemap") = ""
    oImageTag("title") = ""
    oImageTag("style") = ""
    oImageTag("dir") = ""
    oImageTag("lang") = ""
    oImageTag("ismap") = ""
    oImageTag("onabort") = ""
    oImageTag("onclick") = ""
    oImageTag("ondblclick") = ""
    oImageTag("onmousedown") = ""
    oImageTag("onmouseout") = ""
    oImageTag("onmouseover") = ""
    oImageTag("onmouseup") = ""
    oImageTag("onkeydown") = ""
    oImageTag("onkeypress") = ""
    oImageTag("onkeyup") = ""

    For Each param In aParamArray
        val = Split(param, "::")
        If Ubound(val) = 1 Then
            If oImageTag.Exists(val(0)) Then
                oImageTag(val(0)) = val(1)
            End If
        End If
    Next

    aImageTagKeys = oImageTag.Keys
    Img = "<img "
    For Each key in aImageTagKeys
        If oImageTag(key) <> "" Then
            Img = Img & key & "=""" & oImageTag(key) & """ "
        End If
    Next

    If iDocType = 0 Or iDocType = 1 Or iDocType = 6 Then
        Img = Img & ">"
    Else
        Img = Img & "/>"
    End If
End Function
%>

现在,无论doctype是什么,我都可以轻松地控制图像标记的输出,并且从SQL server输出图像将更加容易,因为我可以从一个正常索引的数组中生成一个伪关联数组

解决这个问题的关键不是制作图像标签,而是基于几个因素和SQL server中的数据构建数据和表单的完整视图,但我需要简化它来解决这个问题。现在它工作得很好


谢谢你的建议

嗨,谢谢。我查看了Dictionary对象,我能看到的将其用作关联数组的唯一方法是创建一个命名对象,并将参数作为值一次添加一个。这并不是我想要做的,因为我试图避免使用命名变量,并希望能够将匿名数组作为参数。您能给我一个简单的例子,说明上面使用Dictionary对象移植到VBScript的调用,这样我就可以看到我们是否以同样的方式看到它了?谢谢,谢谢。我查看了Dictionary对象,我能看到的将其用作关联数组的唯一方法是创建一个命名对象,并将参数作为值一次添加一个。这并不是我想要做的,因为我试图避免使用命名变量,并希望能够将匿名数组作为参数。您能给我一个简单的例子,说明上面使用Dictionary对象移植到VBScript的调用,这样我就可以看到我们是否以同样的方式看到它了?谢谢