0

我正在尝试循环并从此数组中获取名称的值,但我无法......真的对 javascript 感到沮丧

任何人都可以请帮助并指导我执行此操作以及更复杂的数组.. 我似乎无法找到很好的教程来展示这个示例

谢谢,这是代码

    var object={name:'angelos',name:'nick',name:'maria'};
    var i;
    for (i = 0; i < object.length; i += 1) {
        document.writeln(object[name][i]);
    }
4

5 回答 5

6

那是一个对象,而不是数组。你可以把它变成一个简单的数组:

var arr = ['angelos', 'nick', 'maria'];
for (var i = 0; i < arr.length; i++) {
    document.writeln(arr[i]);
}

或者,如果您想在数组中包含对象(如果每个对象只有一个键,则不需要):

var arr = [{name: 'angelos'}, {name: 'nick'}, {name: 'maria'}];
for (var i = 0; i < arr.length; i++) {
    document.writeln(arr[i].name);
}
于 2012-08-01T14:48:41.450 回答
3

首先,您的对象有重复的键name。这是糟糕的代码,在严格模式下会抛出错误。

我也会使用for ... in循环或Array.forEach此处,因为实现所需效果所需的代码要少得多。

好像你需要使用一个数组:

var arr = ["nick", "maria", "chaz"];

arr.forEach(function (name) {
    document.writeln(name);
});

您可以使用Array.forEach,它将每个索引传递给匿名函数。

或者,如果您希望每个人都成为Object

var people = [{name: 'chaz', title: 'mr'}, {name: 'nick', title: 'mr'}, {name: 'maria',title: 'ms'}];

for (i in people) {
    if (!people.hasOwnProperty(i)) { continue; }

    var person = people[i];
    document.writeln(person.name);
}

参考

于 2012-08-01T14:49:47.710 回答
2

首先,那是一个对象,而不是一个数组。您可能打算拥有一组对象。我这么说是因为你有三个键都叫name. 键必须是唯一的。像这样:

var people = [{name: 'angelos'}, {name:'nick'}, {name:'maria'}];

在这种情况下,您将像这样循环:

for (var i = 0; i < people.length; i++) {
    document.writeln(people[i].name);
}

示例:http: //jsfiddle.net/lbstr/cMqaH/

于 2012-08-01T14:53:06.830 回答
2

您可以将数据放入数组中,并用包含名称属性的对象填充它(如果您愿意,还可以使用其他对象,例如地址等)

http://jsfiddle.net/5NK6x/

var obj=[{name:'angelos'}, {name:'nick'}, {name:'maria'}],
    i;
for (i = 0; i < obj.length; i += 1) {
    document.write(' ' + obj[i]['name']);
}​
于 2012-08-01T14:55:09.897 回答
0

这是数组和 JSON 的混合。如果您的数据如下所示:

var object = [{"name":"angelos"},{"name":"nick"},{"name":"maria"}];

您可以像这样访问元素:

for(var i=0,i<object.length,i++)
{
    alert(object[i].name);
 }
于 2012-08-01T14:56:10.640 回答