1

我得到“地图未定义”,不知道为什么。
我传递了错误的变量,还是myMap错误地声明了?

var myMap = new Object();
$(things).each(function(){
   var thing= this.attributes.things.Value;
   alert("thing= " + thing);
   var totalThings= myMap[thing];
   alert("totalThings= " + totalThings);                
}); 
4

3 回答 3

5

机会已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"
于 2013-09-05T12:04:36.987 回答
0

你可以做这样的事情

function myMap( thing ){
// properties and defaults 
this.thing = thing || 'default'
}

var myMapInstance = new myMap(whateverTheThingIs); 
于 2013-09-05T12:07:35.283 回答
0

如果事情是一个字符串,可能是你试图做的:

myMap[things] = thing;
alert("totalThings = " + JSON.stringify(myMap, null, 4));
于 2013-09-05T12:13:15.567 回答