如何按数字顺序打印数组中的项目?

时间:2016-06-29 22:48:05

标签: javascript html loops

我有一个for循环,如果它们通过某个条件就会将项目推送到数组中。然后我输出其各自数组的每个项目,以便它在表结构的迭代中显示:

var row = "";
var CatNum = [];
var Org = [];
var tooltip = {
                cat1: '',
                cat2: ''
            };

for循环:

for (var i = 0; i < data.length; i++)
            {
                if (data[i].catType === 'I')
                {
                    CatNum.push(data[i].catNum);
                    Org.push(data[i].org);
                    trackingNumber.push(data[i].trackingNumber)

                    row = '<tr>' +
                        '<td class="tooltip-Val">' + <NUMERICAL ORDER HERE:> +  Org[i] + '</td>' +
                        '</tr>';

                    tooltip.cat1 = tooltip.cat1.concat(row);
                }

                else if (data[i].catType === 'II')
                {
                    CatNum.push(data[i].catNum);
                    Org.push(data[i].org);
                    trackingNumber.push(data[i].trackingNumber);

                    row = '<tr>' +
                        '<td class="tooltip-Val">' + <NUMERICAL ORDER HERE:> +  Org[i] + '</td>' +
                        '</tr>';

                    tooltip.cat2 = tooltip.cat2.concat(row);
                }

我想做的是按数字顺序对每次迭代进行排序。

现在我没有一种方法可以为每个打印的循环编号。 我的目标是让HTML打印如下:

CATI :
   1. xxxxx

   2. xxxxx

   3. xxxxx

CATII :
   1. yyyyy

   2. yyyyy

有关最佳方法的任何想法吗?

2 个答案:

答案 0 :(得分:2)

如果0if条件为else if

,则最初设置为true的增量变量

for (var i = 0, cat 1 = 0, cat2 = 0; i < data.length; i++) {
  if (data[i].catType === 'I') {
    CatNum.push(data[i].catNum);
    Org.push(data[i].org);
    trackingNumber.push(data[i].trackingNumber)

    row = '<tr>' 
      // increment `cat1`
      + '<td class="tooltip-Val">' + (++cat1) + Org[i] + '</td>'
      + '</tr>';

    tooltip.cat1 = tooltip.cat1.concat(row);
  } else if (data[i].catType === 'II') {
    CatNum.push(data[i].catNum);
    Org.push(data[i].org);
    trackingNumber.push(data[i].trackingNumber);
    // increment `cat2`
    row = '<tr>' + '<td class="tooltip-Val">' + (++cat2) + Org[i] 
      + '</td>' 
      + '</tr>';

    tooltip.cat2 = tooltip.cat2.concat(row);
  }
}

答案 1 :(得分:0)

只需添加两个变量即可跟踪计数,例如

var indexOne = 1, indextwo = 1;   
for (var i = 0; i < data.length; i++) { ...

并分别用<NUMERICAL ORDER HERE:>indexOne++替换indextwo++