2017-08-21 3 views
-5

ich tue folgendes:Wie erstelle ich ein Array mit Counter?

var myElement; 
var countElement = 0; 
function wikiParsed(langPrefixElement) { 
    countElement++; 
    myElement[countElement] = { 

Aber ich bekomme:

Uncaught TypeError: Cannot set property '1' of undefined

Ich versuche zu erreichen:

myElement[1] 
myElement[2] 
myElement[3] 

auch versucht:

var myElement; 
var countElement = 0; 
function wikiParsed(langPrefixElement, countElement) { 
    countElement++; 
    myElement[countElement] = { 

Aber Ich bekomme:

Uncaught TypeError: Cannot set property 'NaN' of undefined

+0

Wo ist der Rest des Codes? Im Moment können wir das Problem aufgrund der von Ihnen bereitgestellten Informationen nicht replizieren. – George

+0

1. Wo definierst du 'myElement' als Array? 2. Verwenden Sie 'push()' –

+0

Dies scheint, als ob Sie ein assoziatives Array deklariert haben, das Sie nicht definiert haben. Hast du das Array definiert? –

Antwort

1

Sie erklären myElement, aber es ist nur null. In Ihrer Funktion wird der Versuch, einen Index einer Nullvariablen festzulegen, nichts bewirken. Außerdem sollten Sie nach der Verwendung des Werts inkrementieren, andernfalls verpassen Sie das 0. Element.

var myElement = []; 
 
var countElement = 0; 
 

 
function wikiParsed(langPrefixElement) { 
 
    myElement[countElement++] = countElement; 
 
} 
 
wikiParsed(); 
 
wikiParsed(); 
 
wikiParsed(); 
 
console.log(myElement);

+0

war ein Tippfehler, aktualisiert die Frage, Problem bleibt –

+0

Wenn das Problem Sie müssen ein Problem an anderer Stelle in Ihrem Code haben, da dies funktioniert - wie aus dem Arbeits-Snippet ersichtlich ist. –

+0

ein Quest: Warum verwenden Sie 'myElement [countElement ++] = countElement;' anstelle von 'countElement ++; myElement [countElement]; '? –

0

Es scheint, als ob Sie versuchen, ein assoziatives Array zu verwenden. Definieren Sie es wie so

var myElement = {}; 

//Sample loop 
for (var i = 0; i < 100; i++) { 
    myElement[i] = i; 
} 
Verwandte Themen