从带有函数和参数的关联数组中获取最大值或最小值
Get max or min value from associative array with function and parameters
以下是我目前获得的代码:
<!DOCTYPE html>
<html>
<body>
<button onclick="scanarray('a', 'max')">Test with a, max</button>
<button onclick="scanarray('b', 'min')">Test with b, min</button>
<p id="demo">test</p>
<script>
var array = [{"a":1},{"b":3},{"a":6},{"b":10}];
var max = null;
var min = null;
var value = null;
function scanarray(scanval, searchterm) {
if (array.length < 1) {
return -1;
}
if(searchterm == "max"){
max = Math.max.apply(Math,array.map(function(e){return e.scanvalue;}))
}else if (searchterm == "min"){
min = Math.min.apply(Math,array.map(function(e){return e.scanval;}))
}else
{document.getElementById("demo").innerHTML = "Only max and min available";}
if(searchterm == "max"){
document.getElementById("demo").innerHTML = "Search: " + scanval +" "+ "Value: " + max;
}
if(searchterm == "min"){
document.getElementById("demo").innerHTML = "Search: " + scanval +" "+ "Value: " + min;
}
}
</script>
</body>
</html>
上面的结果应该是a和6,或者b和3。然而,我得到了NaN作为值部分的结果。当在Math部分中使用"return e.a"并且只有一个作为键时,它就起作用了。
我希望能够确定我作为函数参数输入的键的最大值或最小值。
希望你能在这里帮助我。
提前谢谢。
Vagabond
您的代码中存在一些命名混乱。例如,scanvalue
是函数的名称,但您正试图将其作为e(e.scanvalue
)的参数。我应该是scanval
。但是仍然存在一些问题。如果e.scanval
,则无法访问e的属性"a"或"b"。您正在尝试访问变量的变量。
然后,您应该使用e[scanval]
。它会将您的值返回到"a"或"b"。但若对象并没有其中一个呢?然后应该添加"||0"以获得正确的值。(而不是NaN或未定义)这意味着;如果有效,则使用e[scanval],如果无效,则使用0。
使用此;
return e[scanval] || 0;
如果您的边界包含一些负值,请使用-9999或-无穷大之类的值。
您得到Nan是因为e.scanvalue在您的情况下返回undefined。
尝试使用自定义函数。
function getValue(arr){
var res = [];
for(var j = 0; j < arr.length; j++)
{
for(var anItem in arr[j])
{
res.push(arr[j][anItem]);
}
}
return res;
}
并像一样调用此函数
max = Math.max.apply(Math,getValue(array))
和
min = Math.min.apply(Math,getValue(array))
因此。希望这能有所帮助!!!!
相关文章:
- 从json子数组获取数据
- 从javascript数组获取php的日期时间
- 从表中的 JSON 数组获取数据
- 每个表的2D数组获取坐标JTSL,JAVASCRIPT
- javascript从元素到数组获取文本
- 如何从数组获取链接以在youtube Iframe API中播放
- JSON 编码多维数组获取值
- 如何从两个 JSON 数组获取增量
- 通过单击按钮数组获取隐藏 html 元素值的当前数组
- 在 JavaScript 中从内部数组获取数据
- 从数组获取非重复索引在 0 时失败
- JavaScript 从对象中的数组获取数组
- 如何通过 ajax 将 php 数组作为 javascript 数组获取
- 快速从 2D 数组获取索引,无需迭代 jquery
- 从 Nodejs socketio 数组获取所有套接字 id
- 无法动态从 json 数组获取数据
- 如何在javascript中使用数组获取和设置html标签的值
- jQuery对象数组获取一个项作为jQuery对象
- 如何在不向输出数组获取空值的情况下拆分字符串
- 从输入到数组获取数据