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-很遗憾,我不能,因为它是第三方工具的脚本编辑器,所以调试受到限制。