2011-08-24 43 views
4

我在javascript中有一個數組對象。我會從對象的所有行中選擇一個特定的字段。如何從javascript數組中選擇特定字段

我有一個像

var sample = { 
[Name:"a",Age:1], 
[Name:"b",Age:2], 
[Name:"c",Age:3] 
} 

一個對象,我想只得到名稱的輸出作爲["a","b","c"]沒有遍歷樣本對象。

如何使用jlinq選擇一個或兩個字段?或任何其他插件?

非常感謝。

+0

你的對象是無效的。這應該是一個數組。 – Dogbert

+0

爲什麼不循環? –

+0

@ Dogbert-對不起,外括號應該是[]和inner應該{} –

回答

2

你的定義是錯誤的。您不需要包含3個數組的對象,而需要一個對象數組。

這樣的:

var sample = [{Name:"a",Age:1}, 
    {Name:"b",Age:2}, 
    {Name:"c",Age:3}]; 

然後,你可以這樣做:

var name0 = sample[0].Name; 
var age0 = sample[0].Age; 

或獲得所有人的名字按你的例子​​:

var names = [sample[0].Name,sample[1].Name,sample[2].Name]; 

但是,沒有循環我不是確定你將如何得到任何數量的值....爲什麼不循環?

只是說你做循環,這裏是你會怎麼做:

var names = [] 
for(x in sample) 
    names.push(sample[x].Name); 

或使用jQuery(這仍然是循環)

sample= jQuery.map(sample, function(n, i){ 
    return n.Name; 
}); 
4

你可以試試這個:

var sample = [{Name:"a", Age:1}, {Name:"b", Age:2}, {Name:"c", Age:3}]; 
var Names = sample.map(function(item){return item.Name;}); 
+1

'array.map'不會被所有瀏覽器普遍支持。使用jQuery版本,你很安全。 – Jamiec

+0

@Jamiec:(...)在編寫時,所有主流瀏覽器的新版本都支持「數組額外」(實際上是標準化的方法,而不是額外的)。 歌劇11+ 的Firefox 3.6+ Safari 5以上 鉻8+ 的Internet Explorer 9+(來源:[dev.opera.com(HTTP:除非另有說明,所有討論的方法可以安全地使用// dev.opera.com/articles/view/javascript-array-extras-in-detail/)) –

+1

喜歡不喜歡,9之前的IE版本正在被廣泛使用。 – Jamiec

1

Javascript沒有意義。它在合成上是不正確的。我假設你的意思是:

var sample = [ 
    {Name:"a",Age:1}, 
    {Name:"b",Age:2}, 
    {Name:"c",Age:3} 
] 

然後你可以使用jQuery做這樣的事情:

var names = $(sample).map(function(){ return this.Name; }); 

但在現實中,所有的jQuery做的是通過你的對象循環。編寫你自己的循環會(無意義)更快。沒有循環就沒有辦法做到這一點。

0
// assuming you mean: 
var sample = [ 
    {Name:"a",Age:1}, 
    {Name:"b",Age:2}, 
    {Name:"c",Age:3} 
] 

那麼,你最大的問題就是無論發生什麼事情,你都必須循環。現在,jQuery將讓你隱藏與行爲:

var output = [] 
$.each(sample, function(i,e){ output.push(e.Name)}); 

但從根本上講,這是因爲同一件事:

for(var i = 0; i < sample.length; i++) 
{ 
    output.push(v.Name) 
} 
相關問題