我在javascript中有一個數組對象。我會從對象的所有行中選擇一個特定的字段。如何從javascript數組中選擇特定字段
我有一個像
var sample = {
[Name:"a",Age:1],
[Name:"b",Age:2],
[Name:"c",Age:3]
}
一個對象,我想只得到名稱的輸出作爲["a","b","c"]
沒有遍歷樣本對象。
如何使用jlinq選擇一個或兩個字段?或任何其他插件?
非常感謝。
我在javascript中有一個數組對象。我會從對象的所有行中選擇一個特定的字段。如何從javascript數組中選擇特定字段
我有一個像
var sample = {
[Name:"a",Age:1],
[Name:"b",Age:2],
[Name:"c",Age:3]
}
一個對象,我想只得到名稱的輸出作爲["a","b","c"]
沒有遍歷樣本對象。
如何使用jlinq選擇一個或兩個字段?或任何其他插件?
非常感謝。
你的定義是錯誤的。您不需要包含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;
});
你可以試試這個:
var sample = [{Name:"a", Age:1}, {Name:"b", Age:2}, {Name:"c", Age:3}];
var Names = sample.map(function(item){return item.Name;});
'array.map'不會被所有瀏覽器普遍支持。使用jQuery版本,你很安全。 – Jamiec
@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/)) –
喜歡不喜歡,9之前的IE版本正在被廣泛使用。 – Jamiec
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做的是通過你的對象循環。編寫你自己的循環會(無意義)更快。沒有循環就沒有辦法做到這一點。
// 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)
}
你的對象是無效的。這應該是一個數組。 – Dogbert
爲什麼不循環? –
@ Dogbert-對不起,外括號應該是[]和inner應該{} –