2015-07-10 176 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对不起 –