高阶函数:数组过滤器 JavaScript
Higher Order Functions : Array Filter JavaSctipt
我有一个要过滤的字符串数组。
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple'];
我只想保留包含字母 'a' 的单词。
var wordsWithA = words.filter(function (word) {
return words.indexOf('a', 4);
});
如何使用 javascript 中的 indexOf 完成此操作?
indexOf
returns -1
,如果它没有在容器中找到元素。您应该在每个字符串 word
上使用 indexOf
而不是在数组 words
:
上
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple'];
var wordsWithA = words.filter(function (word) {
return word.indexOf('a') !== -1;
});
console.log(wordsWithA);
尝试
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple'];
var wordsWithA = words.filter(function (word) {
return word.indexOf('a') > -1;
});
String.prototype.indexOf(searchString, position) 有两个参数:
- 首先是需要查找的子串
- 第二个是可选参数,即需要查找子串的位置,默认值为
0
.
和方法 returns 第一次出现的 searchString
的索引,如果找到,则 returns -1
否则。
在您的情况下,您可以省略 position
参数并按如下方式执行:
const words = ["hello", "sunshine", "apple", "orange", "pineapple"],
wordsWithA = words.filter((word) => word.indexOf("a") !== -1);
console.log(wordsWithA);
我有一个要过滤的字符串数组。
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple'];
我只想保留包含字母 'a' 的单词。
var wordsWithA = words.filter(function (word) {
return words.indexOf('a', 4);
});
如何使用 javascript 中的 indexOf 完成此操作?
indexOf
returns -1
,如果它没有在容器中找到元素。您应该在每个字符串 word
上使用 indexOf
而不是在数组 words
:
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple'];
var wordsWithA = words.filter(function (word) {
return word.indexOf('a') !== -1;
});
console.log(wordsWithA);
尝试
var words = ['hello', 'sunshine', 'apple', 'orange', 'pineapple'];
var wordsWithA = words.filter(function (word) {
return word.indexOf('a') > -1;
});
String.prototype.indexOf(searchString, position) 有两个参数:
- 首先是需要查找的子串
- 第二个是可选参数,即需要查找子串的位置,默认值为
0
.
和方法 returns 第一次出现的 searchString
的索引,如果找到,则 returns -1
否则。
在您的情况下,您可以省略 position
参数并按如下方式执行:
const words = ["hello", "sunshine", "apple", "orange", "pineapple"],
wordsWithA = words.filter((word) => word.indexOf("a") !== -1);
console.log(wordsWithA);