【发布时间】:2019-01-16 17:59:33
【问题描述】:
我需要根据用户输入在多维数组中搜索和比较两个数字的最接近组合。
目前我有类似的东西可以找到最接近的匹配数字,比如“一个数字”。
var count= [10, 20, 30, 40],
goal = userinput
var closest = count.reduce(function(prev, curr) {
return (Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev);
});
$('#result').attr('value', closest);
我想做什么:当用户在userinput1和4中输入19时 在 userinput2 中,它应该在多维数组 counts 中搜索和比较最近的数字组合。
<input id="userinput1 " value="19" type="text">
<input id="userinput2 " value="4" type="text">
-
var userinput1 = $('#userinput1 ').val();
var userinput2 = $('#userinput2 ').val();
counts = [['10', '5'], ['20', '10']];
goal = [[userinput1, userinput2]];
/* NEEDED SCRIPT */
$('#result1').attr('value', closest1);
$('#result2').attr('value', closest2);
在这个例子中,它应该选择 ['20', '10'] 并在不同的变量中输出这两个数字。
HTML 结果应该是:
<input id="result1" value="20" type="text">
<input id="result2" value="10" type="text">
【问题讨论】:
-
StackOverflow 不是免费的编码服务。 SO希望您try to solve your own problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
-
如果
input1接近一个元素的第一个数字,而input2接近另一个元素的第二个数字怎么办?您如何确定两个数字的接近程度?如果你能想出一个组合公式,那么你就可以使用与处理一个输入时相同的解决方案。 -
为什么目标是双重嵌套数组?
[[userinput1, userinput2]]而不是[userinput1, userinput2]? -
您是否希望将每个用户输入与值进行比较,或者顺序是否重要,并且 unser 输入应该与内部计数的相同索引进行比较?
-
我刚刚实现了将一个数字与另一个数字进行比较。双重嵌套数组没有具体原因。我只是认为这是必要的。
标签: javascript jquery arrays multidimensional-array nearest-neighbor