Je crée quelques fonctions spécifiques pour un compilateur sur lequel je travaille, mais certaines restrictions dans la nature du compilateur m'empêcheront d'utiliser des méthodes JavaScript natives comme Array.prototype.pop()
pour effectuer des pops de tableau. J'ai donc décidé d'essayer d'écrire un pseudo-code rudimentaire pour essayer d'imiter le processus, puis de baser ma fonction finale sur le pseudo-code ... Mais mes tests semblent échouer ... sur la base du Comportement actuel du compilateur, il me permettra seulement d'utiliser array.length
, les attributions d'éléments de tableau et c'est à ce sujet ... Mon code est ci-dessous ...JavaScript restreint Array Pop Polyfill ne fonctionne pas
pop2 = function(arr) {
if(arr.length>0){
for(var w=undefined,x=[],y=0,z=arr.length;y<=z;y++){
y+1<z?(x[y]=arr[y]):(w=arr[y],arr=x);
}
}
return w;
}
Arr = [-1,0,1,2];
// Testing...
console.log(pop2(Arr)); // undefined... should be 2
console.log(Arr); // [-1,0,1,2]... should be [-1,0,1]
J'essaie d'imiter la nature de la fonction pop
mais je n'arrive pas à mettre le doigt sur ce qui cause la fonction à fournir undefined
et le tableau original ... undefined
ne devrait retourner que si un tableau vide initial est envoyé, tout comme vous attendez avec un [].pop()
appel ...
Quelqu'un at-il des indices sur la façon dont je peux adapter ce code pour imiter la pop correctement?
Et même si j'ai entendu dire que arr.splice(array.length-1,1)[0];
peut fonctionner ... le compilateur n'est actuellement pas capable de déterminer splice
ou des méthodes similaires ... Est-il possible de le faire en utilisant une variation de mon code?
Merci à l'avance ...