1

以下の for ループを含む jsp ページがあります。

<c:forEach var="myItem" items="${itemsList}">

<table border="0" class="table_class">

        <tr>

            <td colspan="1" valign="bottom">Item #${myItem.item_number}
            </td>

            <td colspan="2" align="left"><b>Item Name : ${myItem.item_name}</b> 
            </td>


        </tr>

        <tr>
            <td class="gridcolumnclass">${myItem.item_desc}
            </td>

        </tr>

</table>

</c:forEach>

明らかなように、すべてのアイテムに対して 2 つの行が発行され、最初の行には ITEM_NUMBER と ITEM_NAME を含む 2 つの列があり、2 番目の行には ITEM_DESCRIPTION が含まれています。

たとえば、以下のアイテムのセットがあります

1, banana, some_desc
2, banana, some_desc
3, apple, some_desc
4, banana, some_desc
5, banana, some_desc
6, apple, some_desc
7, apple, some_desc
8, banana, some_desc
9, apple, some_desc
10, apple, some_desc
11, banana, some_desc

上記のリストが for ループに渡されると、ディスプレイには、指定された順序で 2 つのバナナ、次に 1 つのリンゴ、次に 2 つのバナナ、2 つのリンゴ、1 つのバナナ、2 つのリンゴ、最後に 1 つのバナナが表示されます。

しかし、リンゴとバナナをグループ化するにはどうすればよいでしょうか?

私のディスプレイには、すべてのバナナが最初に表示され、次にリンゴが表示されるはずです。

読んでくれてありがとう。

4

1 に答える 1

0

アイテムのセットはオブジェクト(または配列)だと思います。Javascript には、関数を取ることができる .sort() 関数があります。

function compare(a,b) {
    if (a.item_name < b.item_name)
        return -1;
    if (a.item_name > b.item_name)
        return 1;
    return 0;
}

myItem.sort(compare);

これをさらに進めて比較機能を動的にしたい場合。(したがって、別の「フィールド」名でソートできます)これは良いスタートです;)

Javascriptでソートできない場合。これはJavaベースのソリューションです。ただし、あなたの場合に使用するには、いくつかの変更が必要です。

お役に立てれば。

于 2013-04-10T09:41:25.817 に答える