我想按照小于和大于的条件从中删除数值,例如我的数组是:
[ 138,124,128,126,140,113,102,128,136,110,134,132,130,132,132,104,116,135,120 ]
现在我的最小值是120,最大值是130。我想从数组中删除所有其余的元素。这在JavaScript中是否可能。
作为新手,任何帮助都将不胜感激。
我想按照小于和大于的条件从中删除数值,例如我的数组是:
[ 138,124,128,126,140,113,102,128,136,110,134,132,130,132,132,104,116,135,120 ]
现在我的最小值是120,最大值是130。我想从数组中删除所有其余的元素。这在JavaScript中是否可能。
作为新手,任何帮助都将不胜感激。
当然,只需筛选数组即可。
var arr = [
138,124,128,126,140,113,102,128,136,110,134,132,130,132,132,104,116,135,120
]
var new_arr = arr.filter(function(x) {
return x > 120 && x < 130;
});
使用>=
和<=
包括120和130等。
只需使用过滤器,它是为这类问题而创建的。下面的代码应该可以按照您的要求完成任务:
//ES6
var arr = [138,124,128,126,140,113,102,128,136,110,134,132,130,132,132,104,116,135,120];
var filteredArr = arr.filter(n => n>120 && n<130); //[124, 128, 126, 128]
我来扩展一下过滤器并将其放入一个可重用的函数中:
var arr = [
138,124,128,126,140,113,102,128,136,110,134,132,130,132,132,104,116,135,120
]
/*
* @param arr Array of integers
* @param min Minimum (Inclusive)
* @param max Maximum (Exclusive)
*/
var filterInRange = function(arr, min, max) {
return arr.filter(function(item) {
return item >= min && item < max;
});
}
console.log(filterInRange(arr, 120, 131).sort()); // [120,124,126,128,128,130]
array.prototype.filter()
方法来返回一个新数组,其中只包含通过布尔测试的元素。 function isBigEnough(element) {
return element >= 10; }
var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
[12, 130, 44]
。array.prototype.map()
和array.prototype.reduce()
一起,array.prototype.filter()
在JavaScript中使用函数式编程风格。
$.grep
而不是$.map
。