Javascript:预期错误

Javascript:预期错误,javascript,Javascript,我无法破译错误消息预期:。当它试图执行下面的代码时发生。我有一个字符串,例如“Joe”:“HR”被传递给它 var p = { "\"" + m[0] + "\"" + " : " + "\"" + (m[0] = m[1]) + "\"" }; 附加代码 for (var key in p) { if (p.hasOwnProperty(key)) { clien

我无法破译错误消息
预期:
。当它试图执行下面的代码时发生。我有一个字符串,例如“Joe”:“HR”被传递给它

var p = {
    "\"" + m[0] + "\"" + " : " + "\"" + (m[0] = m[1]) + "\""
};
附加代码

for (var key in p) 
            {
                if (p.hasOwnProperty(key))
                {
                client = selectedPackage.Elements.AddNew(key, p[key]);
                client.Update();
                }
            }   

{}
是一个对象,因此它需要键的值:

{
    "key": "value"
}
在您的例子中,键是
“\”“+m[0]+”\”“+:“+”\”“+(m[0]=m[1])+“\”“
(这实际上是无效的,错误在这方面有点不清楚),因此您还需要指定一个值

我怀疑您想要这个(从字符串中,看起来像JSON):


{}
是一个对象,因此它需要键的值:

{
    "key": "value"
}
在您的例子中,键是
“\”“+m[0]+”\”“+:“+”\”“+(m[0]=m[1])+“\”“
(这实际上是无效的,错误在这方面有点不清楚),因此您还需要指定一个值

我怀疑您想要这个(从字符串中,看起来像JSON):


您正在定义一个对象,但只有一个没有值的键,例如,您正在尝试执行以下操作:

var p = {
   key : value
}
但是你的代码只是

var p = {
   key
}

您有一个
,但由于它在一个字符串(
“:“
)中,所以不计算。

您正在定义一个对象,但只有一个没有值的键,例如,您正在尝试执行以下操作:

var p = {
   key : value
}
但是你的代码只是

var p = {
   key
}

您有一个
,但由于它位于一个字符串(
“:”
)中,因此它不计算在内。

您不会通过连接文本来创建具有变量键和值的对象。必须使用数组样式指定:

var p = {};
p[m[0]] = m[1];

您不会通过连接文字的文本来创建具有变量键和值的对象。必须使用数组样式指定:

var p = {};
p[m[0]] = m[1];



=
在对象键分配中?该代码应该做什么?@redV-我正在举一个例子,说明我是否有一个字符串,例如“Joe”:“HR”,并需要将它们作为名称-值对进行解析。我遇到的例子是@Barmar——它意味着获取一个字符串并对其进行解析。我已经在帖子中添加了额外的代码。在你提到的问题中,我没有看到任何类似的情况。
=
在对象键分配中?该代码应该做什么?@redV-我正在举一个例子,说明我是否有一个字符串,例如“Joe”:“HR”,并需要将它们作为名称-值对进行解析。我遇到的例子是@Barmar——它意味着获取一个字符串并对其进行解析。我在帖子中添加了额外的代码。我在你提到的问题中没有看到任何类似的内容。你也不能在对象文本中使用表达式作为键,键必须是标识符或文本字符串。因此,看起来他缺少键,而串接应该是值。@Tom Leese-我得到的是
[对象]
。正如Barmar所说,当您尝试获取对象的字符串表示时,您会得到这样的结果。听起来这是JavaScript控制台的输出?@Tom Leese-这是正确的,当它命中下一个代码块时会抛出错误。您也不能将表达式用作对象文本中的键,键必须是标识符或字符串文字字符串。所以看起来他缺少键,串接应该是值。@Tom Leese-我得到的只是
[object]
。正如Barmar所说,当你尝试获取一个对象的字符串表示时,你会得到这样的结果。听起来这是JavaScript控制台的输出?@Tom Leese-这是正确的,当它命中下一个代码块时会抛出一个错误。好吧,如果
”:“
应该是键:值分隔符,然后
…+“:”+…
改为
.:…
。我尝试了
“+”+:+“+”+(m[0]=m[1])+“
,但它不起作用。请删除
+
。您现在正在尝试连接一个空的
,这是非法语法。我尝试了
var p={\\\\+++m[0]+\:“+”+”+”,“+(m[0]=m[1])
,它仍然会抛出一个错误。你能举个例子吗?我可能忽略了一些东西。你为什么要把所有的引号加在一起,为什么要在里面做赋值(
m[0]=m[1]
)?好吧,如果
”:“
应该是键:值分隔符,那么
…+”:“+…
改为
…:…
。我尝试了
“\”“+m[0]+”\+:+“+”+(m[0]=m[1])+“\”“
,但如果删除
+
,则无效。您现在正在尝试连接一个空的
,这是非法语法。我尝试了
var p={“\+m[0]++”:“\”\”:“\”(m[0]=m[1])“\”
它仍然会抛出一个错误。你能举个例子吗?我可能忽略了一些东西。你为什么要把所有的引号加在一起,为什么要在里面做赋值(
m[0]=m[1]
)?我试过了,结果它只返回了
[object]
当您尝试将对象显示为字符串时,它就是这个样子。我如何知道在这种情况下是否传递了值,因为我在
client=selectedPackage.Elements.AddNew(key,p[key]);
?我得到的错误是
无效类型
如果这是Firefox控制台,您应该能够单击
[object object]
以获取有关它的更多信息。@Tom Leese-不幸的是,我不能,因为它是第三方工具的脚本编辑器,所以调试受到限制。我尝试过,它返回的结果是
[object object]
当您尝试将对象显示为字符串时,它就是这个样子。我如何知道在这种情况下是否传递了值,因为我在
client=selectedPackage.Elements.AddNew(key,p[key]);
?我得到的错误是
无效类型
如果这是Firefox控制台,您应该能够单击
[object object]
获取更多信息。@Tom Leese-很遗憾,我不能,因为它是第三方工具的脚本编辑器,所以调试受到限制。