こんにちは私は屈折計私のコードをしたい。 私はこのサンプルオブジェクトを持っている:私はこのaddYear機能を入れて、私はそれが動作していなかった。このような 何かしようとすると、オブジェクトに彼女を宣言することができますどのようにどのようにJavaScriptのオブジェクトでマップの匿名関数を作成しないでください
class Obj {
constructor(){
this.data = [
{'name':'Tom','age':23},
{'name':'John','age':30},
{'name':'Filip','age':32},
];
this.init();
}
init() {
this.newData = this.data.map(function addYear(person) {
person.age= person.age + 1;
return person;
});
}
}
:
class Obj {
//...... old code....
addYear(person){
person.age= person.age + 1;
return person;
}
init() {
this.newData = this.data.map(this.addYear(person)); // this doesn't work
}
}
がいくつかあります方法はどのようにこれを実現する?ありとあらゆる
最初に「.map()」を使う必要はありません。あなたは元のオブジェクトを突然変異させてから、それらを同じオブジェクトの新しい配列に置き換えています。同様に '.forEach()'を使い、 'return person;'と 'this.newData ='を削除してください。 –
クラスのメソッドは、通常、 'init()'が 'this.data'でどのように動作するかなど、クラスのいくつかのメンバで動作します。これが 'person'オブジェクトのためのユーティリティであるならば、それは静的メソッドでなければならないかもしれません。あるいは、 'addYear'メソッドを持つ' Person'クラスを持つべきでしょう。 –