2016-06-07 3 views
0

Gibt es eine Möglichkeit, einem bestimmten Index in einem Array einen Wert zu geben. In PHP könnte ich einfach $ arr [index] = val;Wert in Array ohne Füllung schieben (Javascript)

Im Moment benutze ich

Array.prototype.insert = function (index, item) { 
    this.splice(index, 0, item); 
}; 

Und

var mute = []; 
mute.insert(index, 'value'); 

Aber, wenn das Array leer ist, wird der Index noch 0. Wie finde ich den richtigen Index zu bekommen?

+0

Im Falle eines leeren Array was wollen Sie die Funktion zu tun? Vermutlich können Sie die Array-Länge ('this.length') testen und in diesem Fall etwas anderes machen. Ohne uns zu sagen, was Sie wollen, ist es schwierig, spezifische oder nützliche Ratschläge zu geben, ohne viel zu raten. Wie definierst du "* den richtigen Index *"? –

+0

"der Index wird immer noch 0 sein" - genau, weil ein Array-Index mit "0" beginnt – RomanPerekhrest

+0

'var arr = []; arr [10] = "spärlich"; '. Hier haben Sie ein spärliches Array von 'arr.length == 11; // true' mit nur einem definierten Item an der Indexposition 10 und der Rest ist 'undefined'. – Redu

Antwort

4

Versuchen Sie, die folgenden var mute = []; mute[index] = 'value';

+0

Wenn wir 'mute [10] =' value' 'auf dem leeren Array setzen, wird seine Länge zu' 11 '. Ist es das, was das OP will? – RomanPerekhrest

+0

Richtig. Es gibt keine andere Option, um 'einen bestimmten Index zu geben', andernfalls diskutieren wir ein Objekt wie die Java-Map-Schnittstelle. Das Folgende würde diesen Trick machen: var mute = {}; stumm [index] = 'Wert'; – Zsolt