J'ai un tableau comme:

var array = [1, 2, undefined, undefined, 7, undefined]

Et devez remplacer toutes les valeurs undefined par "-". Le résultat devrait être:

var resultArray = [1, 2, "-", "-", 7, "-"]

Je pense qu'il existe une solution simple, mais je n'en ai pas trouvé.

1
Jaybruh 16 avril 2018 à 12:15

9 réponses

Meilleure réponse

Vous pouvez vérifier undefined et prendre '-', sinon la valeur et utiliser Array#map pour obtenir un nouveau tableau.

var array = [1, 2, undefined, undefined, 7, undefined],
    result = array.map(v => v === undefined ? '-' : v);
    
console.log(result);

Pour un tableau clairsemé, vous devez itérer tous les indices et vérifier les valeurs.

var array = [1, 2, , , 7, ,],
    result = Array.from(array, v => v === undefined ? '-' : v);
    
console.log(result);
3
Nina Scholz 16 avril 2018 à 09:34
 function SampleArray() {
            var Array = [];
            var array = [1, 2, undefined, undefined, 7, undefined];
            for (var i = 0; array.length > i; i++) {
                var Value;
                if (array[i] == undefined) {
                    Value = '-';
                } else {
                    Value = array[i];
                }

                Array.push(Value);
            }
        }
0
kalai 16 avril 2018 à 09:39
var newArray = array.map(function(val) {
    if (typeof val === 'undefined') {
        return '-';
    }
    return val;
});
1
Mark 16 avril 2018 à 09:18

Vous pouvez utiliser Array.map

var array = [1, 2, undefined, undefined, 7, undefined];
var newArray = array.map(x => x !== undefined ? x : "-");
console.log(newArray);
3
Vladu Ionut 16 avril 2018 à 09:17

Utilisez Array.map ()

var array = [1, 2, undefined, undefined, 7, undefined];
console.log(array);

var newArray = array.map(function(v) {
  return undefined === v ? '-' : v;
});

console.log(newArray);
2
user2575725user2575725 16 avril 2018 à 09:19

Vous pouvez utiliser la fonction de carte de programmation fonctionnelle:

 let array = [1, 2, undefined, undefined, 7, undefined];

 let array2 = array.map(e => e === undefined ?  e='-' :  e);
0
Marek Urbanowicz 16 avril 2018 à 13:05

Essayez d'utiliser ceci -

array.forEach(function(part,index,Arr){ if(!Arr[index])Arr[index]='-'})
0
Akash Srivastava 16 avril 2018 à 09:22

Vous pouvez map les valeurs et renvoyer - si elles ne sont pas définies.

let array = [1, 2, undefined, undefined, 7, undefined]

let result = array.map(o => o !== undefined ? o : '-');

console.log(result);
2
Eddie 16 avril 2018 à 09:17

Essayer:

while((index = array.indexOf(undefined)) > -1){array[index] = "-";}

"-"

Cela va rechercher l'index de la valeur que vous recherchez et le remplacer par "-"

0
Dirar Abu Kteish 21 mai 2018 à 07:15