我在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应该{} –