.filter迭代数组

时间:2017-07-18 17:34:19

标签: javascript arrays iterator

我正在尝试迭代一个数组来过滤掉我在新数组中不需要的某些单词。

我可以使用for循环来完成它,但我正在学习并尝试使用迭代器。

我的代码如下:

@NgModule({ 
  providers: MySharedService, 
  ...
})
export class AppModule {}

我试图从storyWords(story)数组中取出不必要的词。现在它将取出不必要的单词中的第一个元素,但我无法完成这三个元素。谢谢你的帮助!

3 个答案:

答案 0 :(得分:3)

您可以使用includes来检查数组中是否存在元素。 Array includes方法确定数组是否包含某个元素,并在适当时返回true或false。

请注意,它是ES6功能。因此,请检查浏览器兼容性或使用polyfill。

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(' '));




答案 1 :(得分:2)

你可以在这里使用indexOf(),使用indexOf检查单词是否在AfricWords数组中并将其过滤掉。



   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(' '));
&#13;
&#13;
&#13;

答案 2 :(得分:0)

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