【问题标题】:Getting duplicates using underscore.js _.each function?使用 underscore.js _.each 函数获取重复项?
【发布时间】:2013-01-27 17:04:47
【问题描述】:

我正在做这样的事情来获取下划线模板中的 JSON

 <% _.each(CList, function(d) {
    var i = 0 
      _.each(d, function(Cdata) {
          console.log(Cdata)
         var pid=JSON.stringify(Cdata["_id"]);
         if(typeof(Cdata["LOCATION"]) !== "undefined"){
       %>
       <tr>
       <td><input type="checkbox" id="Check<%= i %>" onclick='myfunctioncustomer(this,id,"<%= Cdata['COMPANY'] %>"," <%= Cdata['FIRST NAME'] %>","<%= Cdata['LAST NAME'] %> ","<%= Cdata['COMPANY URL'] %> ","<%= Cdata['LINKEDIN URL'] %> ","<%= Cdata['PERSONAL URL'] %> ","<%= Cdata['TWITTER URL'] %> ","<%= Cdata['DESIGNATION'] %> ","<%= Cdata['LOCATION'] %> ","<%= Cdata['PHONE'] %> ",<%= pid %>)' value='<%= Cdata["EMAIL"]  %>' ></input></td>
       <td> <%= Cdata['COMPANY'] %> </td>
       <td> <%= Cdata['FIRST NAME'] +' ' +Cdata['LAST NAME'] %> </td>
       <td> <%= Cdata['LOCATION'] %></td>
       </tr>
      <% i++; 
      }
    })%>
  <% }); %>

结果给了我 json 作为一个表,其中 2 行具有相同的值.. 我得到了这样的东西

 Company Name                    Name            Location
 Mercury Interactive Germany     Georg Goller    Germany
 Mercury Interactive Germany     Georg Goller    Germany
 Mercury Interactive GmbH        Gunter Kraft    Germany
 Mercury Interactive GmbH        Gunter Kraft    Germany

我在这里做错了什么.. 我想摆脱重复项

我的 JSON 的结构:

       [{"SECTOR": "", "CITY": "Missassauga", "DESIGNATION": "ASCM II", "FIRST NAME":            "Michael", "LAST NAME": "Gambarotto", "COMPANY": "Mercury Interactive Corporation", "URL": "", "PHONE": "(416) 605-7872", "LOCATION": "Canada", "ADDRESS": "5800 Explorer Drive, Suite 320Missassauga, Ontario L4W5K9Canada", "_id": {"$oid": "50b5da3dea01a32302a6a2ae"}, "EMAIL": "mgambarotto@mercury.com", "SIZE": ""}, {"SECTOR": "", "CITY": "Missassauga", "DESIGNATION": "APM Major Account Manager", "FIRST NAME": "Tim", "LAST NAME": "Healey", "COMPANY": "Mercury Interactive Corporation", "URL": "", "PHONE": "(416) 706-0171", "LOCATION": "Canada", "ADDRESS": "5800 Explorer Drive, Suite 320Missassauga, Ontario L4W5K9Canada", "_id": {"$oid": "50b5da3dea01a32302a6abfc"}, "EMAIL": "thealey@mercury.com", "SIZE": ""}, {"SECTOR": "", "CITY": "Mississauga", "DESIGNATION": "AM Manager", "FIRST NAME": "Warren", "LAST NAME": "Borthwick", "COMPANY": "Mercury Interactive Corporate", "URL": "", "PHONE": "416-419-4370", "LOCATION": "Canada", "ADDRESS": "5060 Spectrum WaySuite 400 ON L4W 5N5MississaugaCanada", "_id": {"$oid": "50b5da3dea01a32302a6adbf"}, "EMAIL": "wborthwick@mercury.com", "SIZE": ""}]

【问题讨论】:

  • 您确定 JSON 数据正确吗? FWIW,如果您使用_.each(CList, function(d, i) { ... },则不需要var i
  • 是的,json数据是正确的。如果我在第一个_.each之后做一个console.log ..它会给出正确的结果..但是如果我在第二个之后做..我得到重复的结果..和 var i 是拥有变量的唯一 id
  • 对了,对不起,我刚刚注意到你增加i的位置。但是_.each(d, function(Cdata, i)) {...} 应该可以工作。
  • 是的,但这并不能解决我目前的问题;)
  • 有地方下载你的 json 吗?我会看看它:)

标签: javascript html json html-table underscore.js


【解决方案1】:

你最内心的_.each 似乎是不必要的:

  <% _.each(CList, function(Cdata, i) {
    var pid=JSON.stringify(Cdata["_id"]);
    if(typeof(Cdata["LOCATION"]) !== "undefined"){
      %>
      <tr>
      <td><input type="checkbox" id="Check<%= i %>" onclick='myfunctioncustomer(this,id,"<%= Cdata['COMPANY'] %>"," <%= Cdata['FIRST NAME'] %>","<%= Cdata['LAST NAME'] %> ","<%= Cdata['COMPANY URL'] %> ","<%= Cdata['LINKEDIN URL'] %> ","<%= Cdata['PERSONAL URL'] %> ","<%= Cdata['TWITTER URL'] %> ","<%= Cdata['DESIGNATION'] %> ","<%= Cdata['LOCATION'] %> ","<%= Cdata['PHONE'] %> ",<%= pid %>)' value='<%= Cdata["EMAIL"]  %>' ></input></td>
      <td> <%= Cdata['COMPANY'] %> </td>
      <td> <%= Cdata['FIRST NAME'] +' ' +Cdata['LAST NAME'] %> </td>
      <td> <%= Cdata['LOCATION'] %></td>
      </tr>
      <%
    }
  }); %>

【讨论】:

  • 嘿,谢谢..必须做出改变,var cdata = d['attributes'];然后我就可以按照您显示的方式访问数据了。感谢您的帮助:)
猜你喜欢
  • 2012-02-05
  • 2020-09-13
  • 2011-08-20
  • 2014-08-09
  • 2015-07-31
  • 1970-01-01
  • 2023-03-02
  • 2019-02-04
  • 1970-01-01
相关资源
最近更新 更多