webentwicklung-frage-antwort-db.com.de

Wie löse ich ein Element in einem Array in Javascript?

Wie entferne ich die Key-Leiste aus einem Array-Feld, so dass die Leiste nicht angezeigt wird

for(key in foo){alert(key);}
121
Steven Noble

Verwenden Sie nicht delete , da ein Element nicht aus einem Array entfernt wird, sondern es wird nur als undefiniert festgelegt, was dann in der Länge des Arrays nicht korrekt angezeigt wird.

Wenn Sie den Schlüssel kennen, sollten Sie Spleiß verwenden.

myArray.splice(key, 1);

Für jemanden in Steven's Position können Sie so etwas versuchen:

for (var key in myArray) {
    if (key == 'bar') {
        myArray.splice(key, 1);
    }
}

oder

for (var key in myArray) {
    if (myArray[key] == 'bar') {
        myArray.splice(key, 1);
    }
}
217
going
delete foo[key];

: D

48
nlaq

Ein wichtiger Hinweis: JavaScript-Arrays sind keine assoziativen Arrays, wie Sie sie von PHP gewohnt sind. Wenn Ihr "Array-Schlüssel" eine Zeichenfolge ist, bearbeiten Sie nicht mehr den Inhalt eines Arrays. Ihr Array ist ein Objekt, und Sie verwenden Klammern, um auf das Mitglied mit dem Namen <Schlüsselname> zuzugreifen. Somit:

 var myArray = []; 
 myArray ["bar"] = true; 
 myArray ["foo"] = true; 
 alert (myArray.length); // gibt 0 ..__ zurück.

da Sie dem Array keine Elemente hinzugefügt haben, haben Sie nur die Bar- und Foo-Mitglieder von myArray geändert.

36
John Factorial

Wenn Sie den Schlüsselnamen kennen, machen Sie einfach Folgendes:

delete array['key_name']
29
user3177525

http://www.internetdoc.info/javascript-function/remove-key-from-array.htm

removeKey(arrayName,key);

function removeKey(arrayName,key)
{
 var x;
 var tmpArray = new Array();
 for(x in arrayName)
 {
  if(x!=key) { tmpArray[x] = arrayName[x]; }
 }
 return tmpArray;
}
1
ling

So würde ich es machen

 myArray.splice( myArray.indexOf('bar') , 1) 
0
stackoverflows