2015-07-03 27 views
2

我創建了一個表單,其中1個下拉列表存儲了另一個下拉列表的值。但問題是下拉列表存儲重複值。我該怎麼做下拉菜單不會顯示任何冗餘數據。從數組中刪除重複的值Node.js

的代碼是folows:

<form class="form-inline" role="form" method="post" action="/assignloc"> 

         <div class="form-group" style="margin-top:4%;"> 
         <label for="exampleInputEmail1" class="h2color" >FE Name</label> 

          <select name="selectpicker" class="form-control"> 

           <% for(var i=0;i<pic.length;i++){ %> 
           <option value=<%=pic[i].name%>> 
           <%=pic[i].name%> </option> 


           <% } %> 


         </select> 
<label for="exampleInputEmail1" class="h2color" style="margin-left:10px;">Broker ID</label> 
<input type="text" class="form-control" placeholder="Broker Id" name="brokerid"> 

<button type="submit" class="btn btn-primary btn-lg active">Assign</button> 
</div> 
</form> 
+0

你必須在問題標題中完全按照你所說的去除:從數組中刪除重複值。所有的HTML都是不相關的,不是嗎?什麼是確切的數組結構,到目前爲止你嘗試過了什麼? –

+0

服務器的數據響應是什麼?你只是想隱藏前端的任何重複值?理想情況下,重複不應發佈到服務器。如果您還想首先避免服務器的重複,請發佈您的端點。 :) –

+0

一個通用的唯一過濾器的JavaScript http://stackoverflow.com/questions/30837373/code-works-with-arrays-but-not-multidimensional-arrays/30838163#30838163 – Xotic750

回答

0
var pic= ["1","2","1","1", "1", "1", "1", "3", "4", "6", "8", "9", "2"]; 
var uniquePic = []; 
    for(var i in pic){ 
     if(uniquePic.indexOf(pic[i]) === -1){ 
      uniquePic.push(pic[i]); 
     } 
    } 

console.log(uniquePic); 

下面是工作提琴: http://jsfiddle.net/spechackers/5bf3L78L/

+0

不錯,但如果你不想要重複的值,他們不應該在那裏擺在首位。 –

+0

@TonyBarnes:我同意你的看法,但在某些情況下,它可以接受......可能在不同的地方,他們需要重複,並且在一個地方他們不需要...... – Thalaivar

0

您可以簡單地使用Array.filter刪除重複的元素

var unique = arr.filter(function(elem, index, self) { 
    return index == self.indexOf(elem); 
}) 

Demo

0

我認爲你正在使用恩伯JS我已經糾正代碼段爲您

<% 
var pictList = []; 
for(var i=0;i<pic.length;i++){ 
    var pictItem = pic[i].name; 
    var unique = true; 
    for(var j=0; j<pictList.length; j++){ 
     if(pictList[j] == pictItem){ 
      unique = false; 
      return; 
     } 
    } 
    if(unique == true){ 
     pictList.push(pictItem); 
%> 
    <option value=<%=pic[i].name%>> 
     <%=pic[i].name%> </option> 


    <%} } %> 
2

請找到下面搗鼓中的NodeJS刪除重複排列的類似的例子 https://jsfiddle.net/shreya7/rgn3y04e/

var array= ["8","2","7","2", "6"]; 
    var earray = []; 
    for(var i in array){ 
     if(earray .indexOf(array[i]) === -1){ 
      earray.push(array[i]); 
     } 
    } 

    alert(earray);