JS匹配数组中的近似值

daswcszxw 2017-04-21 11:40:08

var addSp = 3;
var speedLen = [1,5,10,20,30,50,75,100];
//当addSp =3时取5,=8时取10,=28时取30,等80时取100
...全文
244 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
daswcszxw 2017-04-21
  • 打赏
  • 举报
回复
引用 1 楼 superwfei 的回复:
var addSp = 80;
var speedLen = [1,5,10,20,30,50,75,100];
function near(a,b){
	var c,d,e,f;
	for(var i=0;i<a.length;i++){
		i==0&&(c=a[i],e=Math.abs(b-a[i]));
		a[i]>b&&(d=d?(a[i]<d?a[i]:d):a[i]);
		i>0&&(Math.abs(b-a[i])<e&&(c=a[i],e=Math.abs(b-a[i])));
	}
	// a 最接近值,b 大于本数的最小值
	return {a:c,b:d}
}
document.write(near(speedLen,addSp)['b'])
跪谢大神。
文盲老顾 2017-04-21
  • 打赏
  • 举报
回复
var addSp = 80;
var speedLen = [1,5,10,20,30,50,75,100];
function near(a,b){
	var c,d,e,f;
	for(var i=0;i<a.length;i++){
		i==0&&(c=a[i],e=Math.abs(b-a[i]));
		a[i]>b&&(d=d?(a[i]<d?a[i]:d):a[i]);
		i>0&&(Math.abs(b-a[i])<e&&(c=a[i],e=Math.abs(b-a[i])));
	}
	// a 最接近值,b 大于本数的最小值
	return {a:c,b:d}
}
document.write(near(speedLen,addSp)['b'])

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧