我使用d3's scaleLinear。我想过滤超出比例范围的值。
var arr = [0, 1, 15, 60, 700];
var scaleX = d3.scaleLinear()
.domain([10, 100])
.range([0, 200]);
// I need something like this:
scaleX.filter(arr) // I want to get: [1, 15, 60]
我最好的解决方案是将所有值都列出来,并检查域的min / max小于/大于给定值。 Like this.
还有更紧凑的解决方案吗?
答案 0 :(得分:0)
var filteredArr = arr.filter(function(d) {
return d >= scaleX.domain()[0] && d <= scaleX.domain()[1]
})
答案 1 :(得分:0)
将过滤器方法应用于arr
变量:
const filteredArray = arr.filter(function (value) { return ((value >= 10) && (value <= 100)) });
filteredArray
仅包含10到100(含)之间的值。
您可以详细了解.filter
方法here。