मैं एक वेक्टर वर्ग के साथ काम करने के लिए मानचित्र() फ़ंक्शन को पाने में असमर्थ हूं।वेक्टर मानचित्र() वर्कस्क्रिप्ट 3 में कैसे काम करता है?
परिणाम हमेशा वापस आ जाता है - इसे मुझे एडफिव फ़ंक्शन द्वारा लौटाए गए मानों के साथ एक नया वेक्टर वापस करना चाहिए (यह उदाहरण स्पष्ट रूप से मेरा वास्तविक उपयोग नहीं है)।
सरणी संस्करण अपेक्षा के अनुसार काम करता है।
क्या किसी को भी वेक्टर के साथ काम करने के लिए नक्शा() प्राप्त करने में कोई भाग्य है?
public function test_vector_map():void {
var v1:Vector.<uint> = new <uint>[1,2,3];
trace(v1); // traces 1,2,3
var v2:Vector.<uint> = v1.map(addFive);
trace(v2); // traces null
}
protected function addFive(item:uint, index:int, vector:Vector.<uint>):uint
{
return item+5;
}
public function test_array_map():void {
var v1:Array = [1,2,3];
trace(v1); // traces 1,2,3
var v2:Array = v1.map(addSix);
trace(v2); // traces 7,8,9
}
protected function addSix(item:uint, index:int, array:Array):uint
{
return item+6;
}
पुष्टि की गई: v1 वेक्टर मानचित्र() फ़ंक्शन द्वारा नहीं बदला गया है। – Stray
पुष्टि की गई: या तो v1 या test class को 'इस' ऑब्जेक्ट के रूप में पास करना (फ़ंक्शन में कोई संदर्भ है जहां उपयोग के लिए दूसरा वैकल्पिक पैरामीटर) कोई फर्क नहीं पड़ता। – Stray
पुष्टि की गई: नक्शा चलाने वाले कोड में एडफिव फ़ंक्शन स्थानीय बनाना भी कोई फर्क नहीं पड़ता है। – Stray