J'ai un tableau comme var aa = ["a","b","c","d","e","f","g","h","i","j","k","l"]; Je voulais supprimer l'élément qui est placé sur un index pair. donc la sortie sera la ligne aa = ["a","c","e","g","i","k"];

J'ai essayé de cette façon

for (var i = 0; aa.length; i = i++) {
if(i%2 == 0){
    aa.splice(i,0);
}
};

Mais ça ne marche pas.

9
shanky singh 8 août 2016 à 14:23

6 réponses

Meilleure réponse

Vous pouvez supprimer tous les index alternatifs en procédant ainsi

var aa = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"];

for (var i = 0; i < aa.length; i++) {
  aa.splice(i + 1, 1);
}

console.log(aa);

var aa = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l"];

var x = [];
for (var i = 0; i < aa.length; i = i + 2) {
  x.push(aa[i]);
}

console.log(x);
8
Pranav C Balan 8 août 2016 à 11:52

Vous pouvez utiliser .filter()

 aa =  aa.filter((value, index) => !(index%2));
3
James 8 août 2016 à 11:29

Vous pouvez utiliser une variable temporaire comme ci-dessous.

var a = [1,2,3,4,5,6,7,8,9,334,234,234,234,6545,7,567,8]

var temp = [];
for(var i = 0; i<a.length; i++)
   if(i % 2 == 1)
      temp.push(a[i]);

a = temp;
2
Fatih TAN 8 août 2016 à 11:27

Dans Ecmascript 6,

var aa = ["a","b","c","d","e","f","g","h","i","j","k","l"];
var bb = aa.filter((item,index,arr)=>(arr.splice(index,1)));
console.log(bb);
1
Nageshwar Reddy 8 août 2016 à 11:58
const aa = ["a","b","c","d","e","f","g","h","i","j","k","l"];
let bb = aa.filter((items, idx) => idx % 2 !== 0)
0
Abbos 12 sept. 2019 à 12:17