JavaScript使用Math.min处理DOM获取的数组返回NaN问题求助
问题原因
- 错误1:
Math.min()方法不接受数组作为直接入参,传入数组时它会尝试将数组整体转换为数值,最终返回NaN - 错误2:JS代码中尝试获取id为
MinTable的DOM元素,但实际HTML里用来展示结果的td元素id是td2,找不到对应元素赋值也会导致异常 - 额外冗余:计算得到的最小值本身就是数值类型,不需要再调用
parseInt()二次转换
修正后的代码
JavaScript代码
function MinButton(){ var td1Text = document.getElementById("td1").textContent; // 解析得到数值数组 var OriginalArray = td1Text.split(",").map(function(num){ return parseInt(num,10); }); // 获取结果展示元素,注意id与HTML对应 var resultTd = document.getElementById("td2"); // 使用展开运算符将数组拆分为单个参数传入Math.min // 如需兼容旧浏览器可替换为 Math.min.apply(null, OriginalArray) resultTd.textContent = Math.min(...OriginalArray); }
运行效果
测试数组1,5,7,-1,3运行后会正确返回最小值-1
内容的提问来源于stack exchange,提问作者Zahra Alameri
相关产品推荐
相关产品推荐

