2010-01-28 3 views
2

Mon problème est que je dois supprimer quelque chose d'un tableau. J'ai découvert comment supprimer quelque chose d'une liste. Mais le problème est que la liste est remplie par un tableau. Donc, si je ne supprime pas la valeur (j'ai supprimé de la liste) hors du tableau. La valeur revient régulièrement lorsque vous ajoutez un nouvel élément. BTW: Je suis nouveau sur php et javascript.Comment puis-je supprimer quelque chose d'un tableau?

Mon code est:

function removeItem(veldnaam){ 
var geselecteerd = document.getElementById("lst"+veldnaam).selectedIndex; 
var nieuweArray; 
alert(geselecteerd);  
alert(document.getElementById(veldnaam+'hidden').value); 

For (var i = 0, i<= arr.lenght, i++) { 
If (i= geselecteerd){ 
    nieuweArray = arr.splice(i,1); 
    document.getElementById(veldnaam+'hidden').value = arr; 
       }} 

document.getElementById("lst"+veldnaam).remove(geselecteerd); 
    } 
+0

ces identifiants hollandais sonnent drôle - je recommande d'utiliser l'anglais seulement en respectant les conventions de codage ...: D – Gnark

+0

kk merci pour le conseil Sophomore – stijn

Répondre

0
var geselecteerd = document.getElementById("lst"+veldnaam).selectedIndex; 
var nieuweArray; 
var teller = 0; 
var oudeArray=document.getElementById(veldnaam+'hidden').value; 
var tmpArr=""; 


nieuweArray=oudeArray.split(":"); 

for (i = 0; i<nieuweArray.length; i++){ 
if (!(i==geselecteerd)){ 
tmpArr = tmpArr+nieuweArray[i]+":";} 
teller++; 
} 
tmpArr = tmpArr + ":"; 
tmpArr = tmpArr.replace("::",""); 
document.getElementById(veldnaam+'hidden').value = tmpArr;   
document.getElementById("lst"+veldnaam).remove(geselecteerd); 
} 

Cette est ma solution et cela a fonctionné. Merci de votre aide.

3

Utilisez l'opérateur delete. Je suppose que vous utilisez des objets en tant que tableaux associatifs.

var arr = { 
    "hello": "world", 
    "foo": "bar" 
} 
delete arr["foo"]; // Removes item with key "foo" 
+2

supprimer arr.foo devrait fonctionner aussi. – Alex

+2

stijn utilise 'arr.splice()', donc je pense que vous supposez à tort. Et dans les tableaux * true * l'opérateur 'delete' ne change pas l'index ... – Boldewyn

3

Vous pouvez supprimer des éléments dans un tableau à l'aide de la commande supprimer. Mais il va juste définir la valeur à undefined.

var arr = ['h', 'e', 'l', 'l', 'o']; 
delete arr[2]; 

arr => ['h', 'e', undefined, 'l', 'o']; 

Il ne supprimera pas l'élément, et de faire un tableau plus court, le tableau aura encore 5 éléments (0 à 4), mais la valeur a été supprimée.

Dans le cas de tableaux "associatifs" ou d'objets: la propriété sera effacée et elle n'existera plus.

var obj = { 'first':'h', 'second':'e', 'third':'l'}; 
delete obj['first']; 

obj => { 'second':'e', 'third':'l'}; 
3

Ajoutez le code suivant quelque part


// Array Remove - By John Resig (MIT Licensed) 
Array.prototype.remove = function(from, to) { 
    var rest = this.slice((to || from) + 1 || this.length); 
    this.length = from < 0 ? this.length + from : from; 
    return this.push.apply(this, rest); 
}; 

et appellent comme ceci:


// Remove the second item from the array 
array.remove(1); 
// Remove the second-to-last item from the array 
array.remove(-2); 
// Remove the second and third items from the array 
array.remove(1,2); 
// Remove the last and second-to-last items from the array 
array.remove(-2,-1); 

article contenant le code ci-dessus et explication: http://ejohn.org/blog/javascript-array-remove/

Questions connexes