对不起,如果我的问题不好.我陷入了以下简单的javascript代码:
var person={fname:"John",lname:"Doe",age:25};
for (x in person)
{
document.write(person[x] + " ");
}
Run Code Online (Sandbox Code Playgroud)
上面的代码结果是:John Doe 25
你如何只显示lname元素的价值?(附for (... in ...)声明)
我不想使用person={"John","Doe",25}而不是上述之一.我想知道如何从数组访问元素以获取值.
谢谢
编辑:感谢大家的回复.这个问题是因为我在数组中有很多项目而创建的:
[{Name="A 1", Email="a1@manufacturer.com", Group="Group1"},
{Name="A 2", Email="a2@manufacturer.com", Group="Group2"},
{Name="A 3", Email="a3@manufacturer.com", Group="Group3"},
{Name="B 1", Email="b1@manufacturer.com", Group="Group1"},
{Name="V 1", Email="b1@manufacturer.com", Group="Group2"},
{Name="X 1", Email="b1@manufacturer.com", Group="Group4"},
{Name="Y 1", Email="b1@manufacturer.com", Group="Group3"},
{Name="Z 1", Email="b1@manufacturer.com", Group="Group3"},
{Name="W 1", Email="b1@manufacturer.com", Group="Group6"}]
Run Code Online (Sandbox Code Playgroud)
我想迭代这个数组并将该元素与我拥有的值进行比较.
if object1.Group == 'Group3' { code }
你在这里不是一个数组,它是一个JavaScript对象.(简单来说,)数组具有数字索引,而对象具有属性名称和值对的属性.
要访问像"lname"这样的特定对象属性,只需说:
person.lname
// OR
person["lname"]
Run Code Online (Sandbox Code Playgroud)
或者,如果要使用的属性的名称位于变量中:
var whichProp = "lname";
person[whichProp]
Run Code Online (Sandbox Code Playgroud)
根据您的数据,生成输出"John Doe",您会说:
document.write(person.fname + " " + person.lname);
Run Code Online (Sandbox Code Playgroud)
for (x in person)您使用的语法循环遍历person对象的x每个属性,依次设置为每个属性名称.
更新您的更新问题:
假设你有一个对象数组:
var people = [{Name:"A 1", Email:"a1@manufacturer.com", Group:"Group1"},
{Name:"A 2", Email:"a2@manufacturer.com", Group:"Group2"},
{Name:"A 3", Email:"a3@manufacturer.com", Group:"Group3"},
// etc ];
Run Code Online (Sandbox Code Playgroud)
并且您想要找到Group为"Group3"的元素,然后使用传统的for循环遍历数组,如下所示:
for (var i=0; i < people.length; i++) {
if (people[i]["Group"] === "Group3") {
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
break如果要在第一次匹配后停止处理,则可以在if语句中添加语句.当然,您可以自由使用people[i].Group语法而不是people[i]["Group"]您喜欢的语法.
(另请注意,在您的问题更新中,您的对象文字语法不正确:您使用=过的地方应该使用:,如上面的答案所示.)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |