JavaScriptの関数型プログラミングについては、クールなオンラインコースを受講しています。インストラクターがArray.prototype.reject()
を使用し、実行時に私のためにうまくいかなくなるまで、私はちょうどうまくいきました。Array.prototype.reject():TypeError:.... rejectは関数ではありません
forループの代わりに "reject"を使用したいのは、コードが少ないからです。しかし、私のブラウザであるNodeJSとExpressコードのコンソールは、私にはreject is not a function
と言っています。
私は、promise.reject
について議論した他の記事を調査しましたが、機能ではありませんが、私のシナリオには意味をなさないソリューションを提供しています。ここで
は例のコードはもちろんである:
var animals = [
{ name: 'Fluffykins', species: 'rabbit' },
{ name: 'Caro', species: 'dog' },
{ name: 'Hamilton', species: 'dog' },
{ name: 'Harold', species: 'fish' },
{ name: 'Ursula', species: 'cat' },
{ name: 'Jimmy', species: 'fish' }
];
var isDog = function(animal){
return animal.species === 'dog';
}
var otherAnimals = animals.reject(isDog);
作業アラウンド用ループ付き:
var notDogs = animals.filter(function(animal){
return animal.species !== 'dog';
});
は、その出力は次のようになります。
> notDogs
[ { name: 'Fluffykins', species: 'rabbit' },
{ name: 'Harold', species: 'fish' },
{ name: 'Ursula', species: 'cat' },
{ name: 'Jimmy', species: 'fish' } ]
助けてください私はArray.prototype.reject()を使用します。
EditL
私は
あなたのJSバージョンは何ですか?おそらく[拒否はサポートされていません](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/reject#Specifications) – mplungjan
さて、配列には '.reject'メソッドが主にそれらが約束ではないので、私はあなたがなぜそのコードが動作することを期待しているのか分かりません。 – vlaz
あなたの質問は明確ではありません。 'reduce'を使ってこの問題を解決したいですか? – zhuscat