我有一个数字数组,例如
然而,我无法让整个东西正常工作。我的完整代码如下:
[300, 500, 700, 1000, 2000, 3000]
,我想找到最接近的数字,但不能超过给定的数字。
例如,搜索2200将返回3000(而不是2000)。
然而,如果我搜索3200,因为数组中没有更高的数字,它应该返回3000作为唯一选择。
我可以使用以下方法获得最接近给定值的数字:
if (sizeToUse == null || Math.abs(this - monitorWidth) < Math.abs(sizeToUse - monitorWidth)) {
sizeToUse = this;
}
然而,我无法让整个东西正常工作。我的完整代码如下:
$(function() {
var monitorWidth = window.screen.availWidth,
sizeToUse = null,
upscaleImages = false;
$('.responsive-img').each(function(){
var sizeData = $(this).attr('data-available-sizes');
sizeData = sizeData.replace(' ', '');
var sizesAvailable = sizeData.split(',');
sizesAvailable.sort(function(a, b){return b-a});
$.each(sizesAvailable, function(){
if(upscaleImages){
if (sizeToUse == null || Math.abs(this - monitorWidth) < Math.abs(sizeToUse - monitorWidth)) {
sizeToUse = this;
}
}
else{
//We don't want to upscale images so we need to find the next highest image available
}
});
console.log('Size to use ' + sizeToUse + ' monitor width ' + monitorWidth);
});
});