Javascript 为什么这个返回哈希给了我问题?
可能重复: 我不知道我是怎么搞砸的 我的代码显示错误:Javascript 为什么这个返回哈希给了我问题?,javascript,arrays,key,Javascript,Arrays,Key,可能重复: 我不知道我是怎么搞砸的 我的代码显示错误: invalid property id 代码: 我需要将这些散列作为数组返回,因此返回,但无论我做什么,它要么返回上面的错误,要么将var引用字符串化。实际上,我无法将动态js值作为键放在其中 我试过这个: " + this.Obj.itemid + " 这是: var itemid = this.Obj.itemid; return { itemid : { //etc.. }} 有什么想法吗?问题是您不
invalid property id
代码:
我需要将这些散列作为数组返回,因此返回,但无论我做什么,它要么返回上面的错误,要么将var引用字符串化。实际上,我无法将动态js值作为键放在其中
我试过这个:
" + this.Obj.itemid + "
这是:
var itemid = this.Obj.itemid;
return { itemid : {
//etc..
}}
有什么想法吗?问题是您不能以这种方式使用this.Obj.itemid 相反,请尝试以下方法:
var ret={};
ret[this.Obj.itemid]=
{
Color : this.Obj.color,
Name : this.Obj.name,
Year : this.Obj.year
};
return ret;
问题是您不能以这种方式使用this.Obj.itemid 相反,请尝试以下方法:
var ret={};
ret[this.Obj.itemid]=
{
Color : this.Obj.color,
Name : this.Obj.name,
Year : this.Obj.year
};
return ret;
属性初始值设定项中冒号左侧显示的内容必须是有效标识符、字符串文字或数字文字。它总是按字面意思使用。这个.Obj.itemid不是这些东西 如果尝试使用this.Obj.itemid的值作为属性名,则:
var ret = {};
ret[this.Obj.itemid] = {
Color : this.Obj.color,
Name : this.Obj.name,
Year : this.Obj.year
};
这充分利用了这样一个事实,即可以对属性名称的任何表达式使用括号表示法。ret[this.Obj.itemid]=。。。将在ret上创建一个属性,其名称是表达式this.Obj.itemid的结果
更简单的例子:
var foo = {};
var b = "bar";
foo[b] = 42;
console.log(foo.bar); // "42"
属性初始值设定项中冒号左侧显示的内容必须是有效标识符、字符串文字或数字文字。它总是按字面意思使用。这个.Obj.itemid不是这些东西 如果尝试使用this.Obj.itemid的值作为属性名,则:
var ret = {};
ret[this.Obj.itemid] = {
Color : this.Obj.color,
Name : this.Obj.name,
Year : this.Obj.year
};
这充分利用了这样一个事实,即可以对属性名称的任何表达式使用括号表示法。ret[this.Obj.itemid]=。。。将在ret上创建一个属性,其名称是表达式this.Obj.itemid的结果
更简单的例子:
var foo = {};
var b = "bar";
foo[b] = 42;
console.log(foo.bar); // "42"
这个和这个,Obj等等。。都很好,因为右手的作业是正确的。我得到了所有正确的值,除了var:this.Obj.itemid在左边时总是字符串化,或者用作键。我将查看您的链接;=谢谢。这个还有这个。Obj等等。。都很好,因为右手的作业是正确的。我得到了所有正确的值,除了var:this.Obj.itemid在左边时总是字符串化,或者用作键。我将查看您的链接;=谢谢,哇。这真是太棒了。非常感谢。真是帮了大忙,我真的很奇怪。我在想,为什么那个复选标记不是绿色的呢。嗯,好奇。我肯定检查过了。无论如何,再检查一遍:-哇。这真是太棒了。非常感谢。真是帮了大忙,我真的很奇怪。我在想,为什么那个复选标记不是绿色的呢。嗯,好奇。我肯定检查过了。无论如何,再次检查:-