我得到“地图未定义”,不知道为什么。
我是否传递了错误的变量,或者myMap
是否被错误地声明了?
var myMap = new Object();
$(things).each(function(){
var thing= this.attributes.things.Value;
alert("thing= " + thing);
var totalThings= myMap[thing];
alert("totalThings= " + totalThings);
});
答案 0 :(得分:4)
可能会定义myMap
,但myMap[thing]
不定义(因为它是没有属性的原始对象)。由于你获得值(而不是设置),你会收到错误。
// virgin object
var myObj = new Object();
console.log(JSON.stringify(myObj)); // "{}"
// therefore property "foo" doesn't exist
console.log(myObj['foo']); // undefined
// but if we add it:
myObj['foo'] = 'bar';
// now it exists
console.log(myObj['foo']); // "bar"
答案 1 :(得分:0)
你可以做这样的事情
function myMap( thing ){
// properties and defaults
this.thing = thing || 'default'
}
var myMapInstance = new myMap(whateverTheThingIs);
答案 2 :(得分:0)
如果是一个字符串,可能是你想要做的事情:
myMap[things] = thing;
alert("totalThings = " + JSON.stringify(myMap, null, 4));