回声来自JavaScript数组的最高值

时间:2018-01-29 19:58:05

标签: javascript switch-statement

我正在尝试从ID中存在文本中的数字然后选择其中最高的数字并在ID HTML字段中回显它,但是将回显的值取决于ID的值:代码解释得更多。 / p>

<script type="text/javascript">
    window.onload = function status() {
        var d = document.getElementById('mom').innerText.match(/\d+/)[0];
        var h = document.getElementById('dad').innerText.match(/\d+/)[0];
        var u = document.getElementById('sister').innerText.match(/\d+/)[0];
        var n = document.getElementById('brother').innerText.match(/\d+/)[0];
        var s = document.getElementById('none').innerText.match(/\d+/)[0];

        var res = [d, h, u, n, s];
        var largest = Math.max.apply(Math, res);

        switch (largest) {
            case 0: result = '<div>Im A</div>'; break;
            case 1: result = '<div>Im B</div>'; break;
            case 2: result = '<div>Im C</div>'; break;
            case 3: result = '<div>Im D</div>'; break;
            case 4: result = '<div>Im E</div>'; break;
        }

        document.getElementById("res").innerHTML = result ;
    }
</script>

1 个答案:

答案 0 :(得分:1)

我认为,您希望检索具有最高值的数组的索引并对索引应用切换。

var res = [d, h, u, n, s];
//var largest = Math.max.apply(Math, res);
var maxValueIndex = res.reduce((iMax, x, i, arr) => x > arr[iMax] ? i : iMax, 0);

switch (maxValueIndex) {
    case 0: result = '<div>Im A</div>'; break;
    case 1: result = '<div>Im B</div>'; break;
    case 2: result = '<div>Im C</div>'; break;
    case 3: result = '<div>Im D</div>'; break;
    case 4: result = '<div>Im E</div>'; break;
}
document.getElementById("res").innerHTML = result ;
相关问题