2017-11-21 6 views
0

をcontaines場合、私は私が試したこのそれはいくつかの文字列

[ { day: 'Friday', time: '14-16 Free' }, 
{ day: 'Friday', time: '16-18 Free' }, 
{ day: 'Friday', time: '18-20 Free' }, 
{ day: 'Friday', time: '20-22 Fully booked' } ] 

のように見え、私はそれで「無料」は含まれない任意の値をフィルタするアレイを、持っています長さはありましたが、うまくいかなかったので、誰かがなぜ私に説明することができますか?

var array = [ { day: 'Friday', time: '14-16 Free' }, 
 
    { day: 'Friday', time: '16-18 Free' }, 
 
    { day: 'Friday', time: '18-20 Free' }, 
 
    { day: 'Friday', time: '20-22 Fully booked' } ]; 
 
console.log(array.filter((e) => e.time === (e.time.length < 11)));

+1

長さは、それは 'Free'が含まれているかどうかに関係していませんか? 'indexOf( 'Free')を使う' – Barmar

+0

なぜ 'e.time'とブール値を比較していますか? – Barmar

+1

長さを使用する場合は、単に '11'と比較を返します。プロパティと再度比較しないでください。 – Barmar

答えて

1

代わりArray.prototype.indexOfをお試しください:

let data = [ 
{ day: 'Friday', time: '14-16 Free' }, 
{ day: 'Friday', time: '16-18 Free' }, 
{ day: 'Friday', time: '18-20 Free' }, 
{ day: 'Friday', time: '20-22 Fully booked' } 
]; 

let result = data.filter((e) => e.time.indexOf('Free') === -1); 

console.log(result); // [{day: "Friday", time: "20-22 Fully booked"}] 

Plunkerはhereです。

+0

同じことは変わっていません – Jason

+1

@Jason Oh、 "Free"アイテムをフィルタリングする必要があるので、 '!== -1'から' === -1'に条件を変更しました。私は答えにプランナーデモを加えました。 – dhilt

+0

私はそれを動作させるために別の値で保存しなければならなかったことを知っています、ありがとう:) – Jason

1

ES6includes()を使用して次のことを試してみてください。

var array = [ { day: 'Friday', time: '14-16 Free' }, 
 
    { day: 'Friday', time: '16-18 Free' }, 
 
    { day: 'Friday', time: '18-20 Free' }, 
 
    { day: 'Friday', time: '20-22 Fully booked' } ]; 
 

 
var res = array.filter((e) => (!(e.time.includes('Free')))); 
 
console.log(res)

関連する問題