JavaScript 中的数组过滤
Jagathish
2023年10月12日
JavaScript 中的 filter()
方法返回一个新数组,其中包含通过指定函数测试的所有元素。这篇文章将讨论如何获取匹配特定条件的数组元素。
在 JavaScript 中使用 isEven()
函数
我们在一个数组中有数字,我们需要选择所有的偶数
元素。
例子:
// checks if a value is even
function isEven(e) {
return e % 2 === 0;
}
let arr = [2, 3, 4, 5, 6, 7];
// filters only even numbers
let evenNumbers = arr.filter(isEven);
console.log(evenNumbers); // [2,4,6]
输出:
input : [2,3,4,5,6,7]
output : [2,4,6]
在上面的代码中:
- 创建了一个函数
isEven
,它将接受一个参数。如果参数是偶
数,此函数返回true
。否则,将返回false
。 - 创建一个数组
arr
,并以isEven
函数作为参数调用arr
的filter
方法。 filter
方法将遍历所有数组元素并为每个数组元素执行isEven
方法。filter
方法将选择isEven
方法返回2,4,6
值的所有元素。
在 JavaScript 中使用 isPalindrome()
函数
我们有一个字符串数组,我们需要选择所有回文
字符串(一个向后读和向前读相同的字符串,例如,mom
、dad
、madam
)。
例子:
// checks if a string is palindrome
function isPalindrome(str) {
// split each character of the string to an array and reverse the array and
// join all the characters in the array.
let reversedStr = str.split('').reverse().join('');
return str === reversedStr;
}
let arr = ['dad', 'god', 'love', 'mom']
// filters only palindrome string
let palindromeArr = arr.filter(isPalindrome);
console.log(palindromeArr); // ['dad', 'mom']
输出:
input : ['dad', 'god', 'love', 'mom']
output : ['dad', 'mom']
在上面的代码中:
- 创建了一个函数
isPalindrome
,它将采用一个字符串参数。如果参数是回文,此函数返回true
。否则,将返回false
。 - 创建一个数组
arr
,并以isPalindrome
函数作为参数调用arr
的filter
方法。 filter
方法将遍历所有数组元素并为每个数组元素执行isPalindrome
方法。filter
方法将选择isPalindrome
方法返回值'dad'
、'mom'
的所有元素。