返回指令在javascript中停止我的for循环

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (23)

当我使用for循环时,没有任何问题

for (var h = 0; h < xt.length; h++) {
  var heart = '';
  console.log(xt[h]);
  if (row[0] == xt[h]) {
    heart = 'icon-heart';
  } else {
    heart = 'icon-    heart1';
  }
}

但是当我使用返回指令时,循环停止:

for (var h = 0; h < xt.length; h++) {
  var heart = '';
  console.log(xt[h]);
  if (row[0] == xt[h]) {
    heart = 'icon-heart';
  } else {
    heart = 'icon-heart1';
  }
  return '<i class="' + heart + '" onClick="addFAv(this)"  data-id="' + row[0] + '" data-name="' + row[1] + '"></i> <a href="#" class="icon-line-clipboard i-circled i-small"></a> <a href="#" class="icon-file-alt2 i-circled i-small"></a>';
}

你知道为什么吗 ?

函数中的整个代码是

$('#recevabilite').dataTable({
      "scrollY": "200px",
      "scrollCollapse": true,
      "paging": false,
      stateSave: true,
      "dom": '<"#recev.top">irt',
      "columnDefs": [{
            "visible": false,
            "targets": [3]
          },
          {
            "render": function(data, type, row) {
                //    var date1 = new Date()+10J;
                //affichage des icones  
                var x = localStorage.getItem("listeFavoris");
                xt = x.split(',');

                for (var h = 0; h < xt.length; h++) {
                  var heart = '';
                  console.log(xt[h]);
                  if (row[0] == xt[h]) {
                    heart = 'icon-heart';
                  } else {
                    heart = 'icon-heart1';
                  }
                  return '<i class="' + heart + '" onClick="addFAv(this)"  data-id="' + row[0] + '" data-name="' + row[1] + '"></i> <a href="#" class="icon-line-clipboard i-circled i-small"></a> <a href="#" class="icon-file-alt2 i-circled i-small"></a>';
                }

谢谢

提问于
用户回答回答于

当你执行return,它结束了函数,因此不再执行循环的任何进一步迭代。

您需要连接每个循环迭代中的值,然后在循环之后返回最终结果:

            "render": function(data, type, row) {
                //    var date1 = new Date()+10J;
                //affichage des icones  
                var x = localStorage.getItem("listeFavoris");
                var xt = x.split(',');
                var html = '';
                for (var h = 0; h < xt.length; h++) {
                  var heart = '';
                  console.log(xt[h]);
                  if (row[0] == xt[h]) {
                    heart = 'icon-heart';
                  } else {
                    heart = 'icon-heart1';
                  }
                  html += '<i class="' + heart + '" onClick="addFAv(this)"  data-id="' + row[0] + '" data-name="' + row[1] + '"></i> <a href="#" class="icon-line-clipboard i-circled i-small"></a> <a href="#" class="icon-file-alt2 i-circled i-small"></a>';
                }
              return html;
            }

扫码关注云+社区

领取腾讯云代金券