Dans le code ci-dessous lorsque je console les valeurs de non capturé TypeError: impossible de définir la propriété '0' de indéfini p>
blockQuote> Je suis incapable de comprendre pourquoi je reçois cette erreur parce que, selon moi, je fais la bonne chose. S'il vous plaît aider. P> p> Calculatetites () code>, je reçois l'erreur suivante
4 Réponses :
Vous pouvez obtenir votre résultat en faisant cela. Utilisez-le en fonction de vos besoins.
var num = 10, dynar = [...Array(num)].map((_,i) => ++i+""); console.log(dynar);
Remplacer Essayez ceci: p> p> .foForeach code> Fonction de rappel avec => code> ( let tipCal = {
bills: [124, 48, 268, 180, 42],
calculateTips: function () {
this.tips = [];
this.finalValue = [];
(this.bills).forEach((item, index)=> {
if (item < 50) {
this.tips[index] = (item * .2);
} else if (item >= 50 && item < 200) {
this.tips[index] = (item * .15);
} else {
this.tips[index] = (item * .1);
}
});
return this.tips;
}
}
console.log(tipCal.calculateTips())
Quelques choses à noter. Tout d'abord, en utilisant notation d'index au lieu de Deuxièmement, oui, l'utilisation d'une fonction code> modifie le contexte de array.pototype.push code> n'est pas très courant, aussi loin que j'ai vu. Puisque vous construisez this.tips code> à partir de zéro, vous pouvez utiliser ceci.tips.push (...) code>. L'utilisation de poussez code> peut parfois avoir de meilleures performances aussi. Voir ici: Pourquoi array.push parfois plus vite que le tableau [n ] = valeur? p>
ceci code>, donc ceci code> à l'intérieur de votre foreach code> > Le rappel se réfère à la fonction de rappel et non TipCal code>. L'utilisation d'une flèche comme suggéré conservera le contexte de ceci code>. P>
Je pense que cela parce que la fonction à l'intérieur d'une fonction change le mot clé code>. p>
Le La fonction de flèche ne changera pas le mot clé code>. p>
Donc, il retournera .. p>
(5) [18.59999999999999998, 9.600000000000001, 26.8, 27, 8.4] P>
blockQuote> .foreseach (fonction (élément, index) { code> live inside Calculatetites: fonction () { code>.
Essayez d'utiliser la fonction de flèche, il sera donc .foreseach ((élément, index) => { code>. P>.
Ceci code> à l'intérieur de votre.foreseach code> ne fait référence à votre objet. Vous pouvez utiliser une fonction de flèche à la placeEst-ce que cela répond à votre question? Comment accéder au bon `this` à l'intérieur d'un rappel? a>