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

事が文字列の場合、あなたがやろうとしていた可能性があります:

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

あなたはこのようなことをすることができます

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

var myMapInstance = new myMap(whateverTheThingIs); 
于 2013-09-05T12:07:35.283 に答える