关联数组中的键名

时间:2016-10-07 10:13:49

标签: javascript jquery associative-array

我试图将项目添加到关联数组,但我的密钥名称没有正确生成。我的代码如下:

var room_name = $('#room_name').val();
var item_name = $('#item_name').val();
var item_description = $('#item_description').val();
roominventory[room_name] = { item_name : item_description };

发生了什么事我正在接受

{
    "Correct room name": {
        "item_name": "correct item description"
    }
}

item_name外,一切正常。我希望关键名称是item_name的值,但我只是获取文字item_name

任何想法我做错了什么?

4 个答案:

答案 0 :(得分:4)

您不能使用您正在使用的语法在对象键中使用变量,因为它们是字面意思。您需要在 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <html> <body> <table border="0"> <xsl:for-each select="row"> <SENDER><xsl:value-of select="SENDER"/></SENDER> <KUNDE><xsl:value-of select="KUNDE"/></KUNDE> <DEPOT><xsl:value-of select="DEPOT"/></DEPOT> <ADRESS1><xsl:value-of select="ACCOUNT_DEBIT"/></ADRESS1> <ADRESS2><xsl:value-of select="ACCOUNT_DEBIT"/></ADRESS2> <ADRESS3><xsl:value-of select="ACCOUNT_DEBIT"/></ADRESS3> <ADRESS4><xsl:value-of select="ACCOUNT_DEBIT"/></ADRESS4> <ACCOUNT_DEBIT><xsl:value-of select="ACCOUNT_DEBIT"/></ACCOUNT_DEBIT> <ACCOUNT_CREDIT><xsl:value-of select="ACCOUNT_CREDIT"/></ACCOUNT_CREDIT> <CREATED><xsl:value-of select="CREATED"/></CREATED> <DEALTYPE><xsl:value-of select="DEALTYPE"/></DEALTYPE> <STATEMENT_FROM><xsl:value-of select="STATEMENT_FROM"/></STATEMENT_FROM> <STATEMENT_TO><xsl:value-of select="STATEMENT_TO"/></STATEMENT_TO> </xsl:for-each> <ENTRY> <xsl:element name="BUYSELL"> <xsl:element name="WPNAME"> </xsl:element> </ENTRY> </table> </body> </html> </xsl:template> </xsl:stylesheet> 的设置器中使用括号表示法。试试这个:

roominventory

答案 1 :(得分:1)

作为替代方案,您可以使用

roominventory[room_name] = {[item_name] : item_description};

答案 2 :(得分:0)

正如Rory指出的那样,你不能在密钥中使用变量。您必须使用包含object的<{1}}:

key and value

https://jsfiddle.net/u2j42wsv/

答案 3 :(得分:0)

var room_name = $('#room_name').val();
var item_name = $('#item_name').val();
var item_description = $('#item_description').val();

roominventory = new Array();
roominventory[room_name] = {};
roominventory[room_name][item_name] = item_description;