2017-07-18 18 views
0

私は新しい配列では望まない特定の単語をフィルタリングするために配列を反復しようとしています。.filter to array to array。

私はそれをforループで行うことができますが、私は学習してイテレータを使用しようとしています。

私が持っているコードは以下の通りです:

let story = 'Last weekend, I took literally the most beautiful bike ride of my life. The route is called "The 9W to Nyack" and it actually stretches all the way from Riverside Park in Manhattan to South Nyack, New Jersey. It\'s really an adventure from beginning to end! It is a 48 mile loop and it basically took me an entire day. I stopped at Riverbank State Park to take some extremely artsy photos. It was a short stop, though, because I had a really long way left to go. After a quick photo op at the very popular Little Red Lighthouse, I began my trek across the George Washington Bridge into New Jersey. The GW is actually very long - 4,760 feet! I was already very tired by the time I got to the other side. An hour later, I reached Greenbrook Nature Sanctuary, an extremely beautiful park along the coast of the Hudson. Something that was very surprising to me was that near the end of the route you actually cross back into New York! At this point, you are very close to the end.'; 

let unnecessaryWords = ['extremely', 'literally', 'actually' ]; 

let storyWords = story.split(' '); 

let betterWords = storyWords.filter(function(words) { 
    return words !== unnecessaryWords[0]; 
}); 

console.log(betterWords.join(' ')); 

私はstoryWords(物語)配列のうち、unnecessaryWordsを取るしようとしています。今のように、不必要な言葉の最初の要素を取り除きますが、私はそれを3つすべてすることはできません。助けてくれてありがとう!

答えて

2

あなたは、要素が配列にか存在しているかどうかを確認するためにincludesを利用することができます。配列includesメソッドは、配列に特定の要素が含まれているかどうかを判断し、必要に応じてtrueまたはfalseを返します。

ちょうどES6機能であることに注意してください。したがって、ブラウザの互換性を確認するか、ポリフィルを使用してください。

unnecessaryWords.includes(words);

完全なコード:

let story = 'Last weekend, I took literally the most beautiful bike ride of my life. The route is called "The 9W to Nyack" and it actually stretches all the way from Riverside Park in Manhattan to South Nyack, New Jersey. It\'s really an adventure from beginning to end! It is a 48 mile loop and it basically took me an entire day. I stopped at Riverbank State Park to take some extremely artsy photos. It was a short stop, though, because I had a really long way left to go. After a quick photo op at the very popular Little Red Lighthouse, I began my trek across the George Washington Bridge into New Jersey. The GW is actually very long - 4,760 feet! I was already very tired by the time I got to the other side. An hour later, I reached Greenbrook Nature Sanctuary, an extremely beautiful park along the coast of the Hudson. Something that was very surprising to me was that near the end of the route you actually cross back into New York! At this point, you are very close to the end.'; 
 

 
let unnecessaryWords = ['extremely', 'literally', 'actually' ]; 
 

 
let storyWords = story.split(' '); 
 

 
let betterWords = storyWords.filter(function(words) { 
 
    return !unnecessaryWords.includes(words); 
 
}); 
 

 
console.log(betterWords.join(' '));

+0

クライアント側を使用すると、 'includes()'はフルブラウザサポートを持たないことに注意してください。 – charlietfl

+0

@charlietfl - ありがとう、答えに情報を追加しました。 – Agalo

2

ここでindexOf()を使用すると、その単語がindexOfを使用して不要な単語配列に含まれていないかどうかを確認して除外できます。

let story = 'Last weekend, I took literally the most beautiful bike ride of my life. The route is called "The 9W to Nyack" and it actually stretches all the way from Riverside Park in Manhattan to South Nyack, New Jersey. It\'s really an adventure from beginning to end! It is a 48 mile loop and it basically took me an entire day. I stopped at Riverbank State Park to take some extremely artsy photos. It was a short stop, though, because I had a really long way left to go. After a quick photo op at the very popular Little Red Lighthouse, I began my trek across the George Washington Bridge into New Jersey. The GW is actually very long - 4,760 feet! I was already very tired by the time I got to the other side. An hour later, I reached Greenbrook Nature Sanctuary, an extremely beautiful park along the coast of the Hudson. Something that was very surprising to me was that near the end of the route you actually cross back into New York! At this point, you are very close to the end.'; 
 

 
let unnecessaryWords = ['extremely', 'literally', 'actually' ]; 
 

 
let storyWords = story.split(' '); 
 

 
let betterWords = storyWords.filter(function(words) { 
 
    return unnecessaryWords.indexOf(words) < 0; 
 
}); 
 

 
console.log(betterWords.join(' '));

+3

'unnecessaryWords.indexOf(ワード)> = 0 'はすでにブール...が不要です三者 – charlietfl

+0

@charlietflああ!ええ、ありがとう。 – Dij

0
var filtered = storyWords.filter(function(e) { 
    return this.indexOf(e) < 0; 
}, unnecessarywords);