javascript - 对整数数组进行排序并显示输入值

标签 javascript sorting ranking

我有一个包含很多输入字段的网站,我想对其中的数据进行排序。

enter image description here

如您所见,我想对总分列进行排序,并在 MVP 输入字段中找到位置。为此,我想使用 javascript 函数 .sort();

function sortmvp() {
    var mvp = new Array();
    mvp[0] = parseInt(document.getElementById('p1_5h').value);
    mvp[1] = parseInt(document.getElementById('p2_5h').value);
    mvp[2] = parseInt(document.getElementById('p3_5h').value);
    mvp[3] = parseInt(document.getElementById('p4_5h').value);
    mvp[4] = parseInt(document.getElementById('p5_5h').value);
    mvp[5] = parseInt(document.getElementById('p6_5h').value);

    mvp.sort();
}

p1_5hp2_5hp1_5h……是Total列的输入。在这一点上,我只对数组中的数据进行了排序,但我必须显示它们。

问题是我不知道如何在正确的输入中显示正确的位置 (1,2,3,4...),如上图所示。有什么建议吗?

在这里你可以看到表格的HTML代码:http://jsfiddle.net/ajLLU/1/

HTML

<fieldset class="a" style="width:90%">
    <legend><b>Individuals</b>
    </legend>
    <div style="height:240px;width:100%;overflow-y:scroll; border:1px solid #D8D8D8;">
        <form name="individszsz" action="individuals.js, update_gps();">
            <table id="tabini11" border="0" align="center" style="width:550px">
                <tr>
                    <td width="100px" valign="bottom">
                        <p align="center"><b> Home Clan </b>
                        </p>
                    </td>
                    <td valign="bottom" width="50px">
                        <p align="center"><b>GP1</b>
                        </p>
                    </td>
                    <td valign="bottom" width="50px">
                        <p align="center"><b>GP2</b>
                        </p>
                    </td>
                    <td valign="bottom" width="50px">
                        <p align="center"><b> GP3  </b>
                        </p>
                    </td>
                    <td valign="bottom" width="50px">
                        <p align="center"><b> Total</b>
                        </p>
                    </td>
                    <td valign="bottom" width="50px">
                        <p align="center"><b> Average</b>
                        </p>
                    </td>
                    <td valign="bottom">
                        <p align="center"><b> MVP</b>
                        </p>
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p1_1h" type="text" name="p1_1h" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_2h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_3h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_4h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_5h" type="text" value="0" readonly style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_6h" type="text" value="0" readonly style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp1" type="text" value="0" readonly style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p2_1h" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_2h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_3h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_4h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_5h" type="text" value="0" readonly style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_6h" type="text" value="0" readonly style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp2" type="text" value="0" readonly style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p3_1h" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_2h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_3h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_4h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_5h" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_6h" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp3" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p4_1h" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_2h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_3h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_4h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_5h" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_6h" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp4" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p5_1h" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_2h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_3h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_4h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_5h" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_6h" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp5" type="text" value="0" style="width:100" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p6_1h" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_2h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_3h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_4h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_5h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_6h" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp6" type="text" value="0" style="width:100" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
            </table>
            <table id="tabini12" border="0" align="center" style="width:550px">
                <tr>
                    <td width="80px" valign="bottom">
                        <p align="center"><b> Versus Clan </b>
                        </p>
                    </td>
                    <td valign="bottom" width="40px">
                        <p align="center"><b>GP1</b>
                        </p>
                    </td>
                    <td valign="bottom" width="40px">
                        <p align="center"><b>GP2</b>
                        </p>
                    </td>
                    <td valign="bottom" width="40px">
                        <p align="center"><b> GP3  </b>
                        </p>
                    </td>
                    <td valign="bottom" width="40px">
                        <p align="center"><b> Total</b>
                        </p>
                    </td>
                    <td valign="bottom" width="40px">
                        <p align="center"><b> Average</b>
                        </p>
                    </td>
                    <td valign="bottom" width="40px">
                        <p align="center"><b> MVP</b>
                        </p>
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p1_1o" type="text" name="p1_1h" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_2o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_3o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_4o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_5o" type="text" value="0" style="width:100%" readonlyonchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p1_6o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp7" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p2_1o" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_2o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_3o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_4o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_5o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p2_6o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp8" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p3_1o" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_2o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_3o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_4o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_5o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p3_6o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp9" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p4_1o" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_2o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_3o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_4o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_5o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p4_6o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp10" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p5_1o" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_2o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_3o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_4o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_5o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p5_6o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp11" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
                <tr>
                    <td width="80px" valign="bottom">
                        <input id="p6_1o" type="text" value="" style="width:100%">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_2o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_3o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_4o" type="text" value="0" style="width:100%" onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_5o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="p6_6o" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                    <td valign="bottom" width="40px">
                        <input id="mvp12" type="text" value="0" style="width:100%" readonly onchange="individuals(); update_gps(); calc();">
                    </td>
                </tr>
            </table>
        </form>
    </div>
</fieldset>

Javascript

function calc() {
    var h1 = parseInt(document.getElementById('h1').value);
    var h2 = parseInt(document.getElementById('h2').value);
    var h3 = parseInt(document.getElementById('h3').value);
    var o1 = parseInt(document.getElementById('o1').value);
    var o2 = parseInt(document.getElementById('o2').value);
    var o3 = parseInt(document.getElementById('o3').value);

    var toth = h1 + h2 + h3;
    var toto = o1 + o2 + o3;

    document.getElementById('htot').value = toth;
    document.getElementById('otot').value = toto;


    document.getElementById('diff1').value = h1 - o1;
    document.getElementById('diff2').value = h2 - o2;
    document.getElementById('diff3').value = h3 - o3;
    document.getElementById('difftot').value = toth - toto;

    htot = document.getElementById('htot');
    otot = document.getElementById('otot');

    if (htot.value == otot.value) {
        htot.style.color = 'blue';
        otot.style.color = 'blue';
    } else {
        if (htot.value > otot.value) {
            htot.style.color = 'green';
            otot.style.color = 'red';
        } else {
            otot.style.color = 'green';
            htot.style.color = 'red';
        }
    }

    var totals = [],
        indices = [];
    for (var i = 0, i < 6; i++) {
        totals[i] = parseInt(document.getElementById('p' + (i + 1) + '_5h').value, 10);
        indices[i] = i;
    }
    indices.sort(function (a, b) {
        return totals[a] - totals[b];
    });
    for (var i = 0; i < indices.length; i++)
    document.getElementById('mvp' + (indices[i] + 1)).value = (i + 1);

}

最佳答案

实际上,您不想对总值进行排序,而是根据它们的索引各自的值 进行排序。这样您仍然知道哪个索引属于哪个字段。

var totals = [],
    indices = [];
for (var i=0; i<6; i++) {
    totals[i] = parseInt(document.getElementById('p'+(i+1)+'_5h').value, 10);
    indices[i] = i;
}
indices.sort(function(a, b) {
    return totals[a] - totals[b];
});
for (var i=0; i<indices.length; i++)
    document.getElementById('mvp'+(indices[i]+1)).value = (i+1);

关于javascript - 对整数数组进行排序并显示输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17702268/

相关文章:

javascript - 为什么 AngularJS 默认事件指令使用 `compile` 方法而不是 `link` 来读取属性?

javascript - 在谷歌地图或谷歌地球插件中延迟/按需加载 KML?

python - 按前 N 个字符对字符串进行排序

c++ - 调用 std::stable_sort 时出错?

mysql - 如何在Mysql中选择存储过程的某些列

javascript - Dojo 如何解析整个 JsonRestStore(JSON 到字符串)

javascript - React 反模式,在另一个组件的定义中定义了一个组件

MySQL Limit 和 Order Left Join

normalization - 比较频率数据和 zipf/rank 数据

mysql - 游戏排名位置