如何过滤JavaScript数组中可被其他元素整除的较大元素?
JavaScript数组过滤实现
现有数组:
let x = [ 2, 3, 4, 6, 5 ];
需要过滤得到:
let x = [ 2, 3, 5 ];
过滤规则:如果数组中的某个元素大于其他任意一个元素,且能被该元素整除(排除自身),则移除这个元素。比如6能被2和3整除、4能被2整除,所以这两个元素都会被移除。
实现代码
let x = [2, 3, 4, 6, 5]; const filteredArray = x.filter(item => { // 检查是否存在满足条件的其他元素 return !x.some(num => num !== item && item > num && item % num === 0); }); console.log(filteredArray); // 输出: [2, 3, 5]
代码解释
- 使用
filter方法遍历原数组,筛选出符合要求的元素 some方法用于判断是否存在一个符合条件的元素:num !== item:排除元素自身item > num:当前元素要大于这个元素item % num === 0:当前元素能被这个元素整除
- 对
some的结果取反,意味着只要存在满足条件的元素,当前元素就会被过滤掉,否则保留
内容的提问来源于stack exchange,提问作者edinvnode
相关产品推荐
相关产品推荐

