2015-07-10 173 views
3

如何輕鬆地在Jquery或Javascript中執行這些類型的循環?最好沒有任何其他插件。LinQ在JavaScript中的foreach/jquery

string a = ""; 
foreach (var i in (from a in DbList1 select a.FieldA).Distinct()) 
{ 
    a += i + ", "; 
} 

foreach (var i in DbList2) 
{ 
    a += i.FieldB + ", "; 
} 

環路2號可以ATLEAST解決這個樣子。

$.each(aData.DbList2, function (index, value) { 
a += value.FieldB; 
); 

不是100%肯定這是最有效的,雖然

+2

你在迭代一個數組並從每個元素中獲取東西嗎?更好地發佈一個樣例問題,如**如何在數組中進行單詞分析?**來自其他語言的語法只是令人困惑。 – Mritunjay

+0

在JavaScript中,它是一個對象內的數組 – stibay

+0

嗨請發現這個URL可能對你有幫助http://stackoverflow.com/questions/11887450/each-vs-for-loop-and-performance –

回答

2

第二個是很容易在香草的JavaScript做:

var a = ""; 
for (var i = 0; i < DbList2.length; i++){ 
    a += DbList2[i].FieldB + ", "; 
} 

第一個是有點麻煩,但不是不可能的,也可以用香草JS做。

var a = ""; 
var uniques = []; 

for (var i = 0; i < DbList1.length; i++){ 
    var fieldA = DbList1[i].FieldA; 
    // check if we've already seen this value 
    if (uniques.indexOf(fieldA) < 0) 
    { 
     // Nope, record it for future use 
     uniques.push(fieldA) 

     // and update the string. 
     a += fieldA + ", "; 
    } 
} 
+0

根據http://stackoverflow.com/questions/11887450/each-vs-for-loop-and-performance這似乎是非常好的性能。那麼,這是一種簡單的方法,只添加一個獨特的值? – stibay

+1

更新了我對唯一值的回答 – phuzi

3

可以使用map方法遍歷數組變量。

代碼片段:

var arr = jQuery.map(aData.DbList2, function(value) { 
return value.FieldB; 
}); 
//To get unique array variable 
var uniqueArr = []; 
$.each(arr, function (i, el) { 
      if ($.inArray(el, uniqueArr) === -1) uniqueArr.push(el); 
     }); 
+0

你如何模擬Distinct()函數:p –

+0

是的,如何區別或唯一,因爲我讀它在jquery中被調用被執行? – stibay

+0

@JaromandaX對不起 –