如何访问数组中数组中的对象数组中的值

时间:2018-02-05 08:01:40

标签: javascript

我是JavaScript的新手,我有一个任务是打印json文件中的每个人的需求差事,我必须访问他们的直接朋友(每个人中的朋友数组)并且每个人都有ID。当我选择一个人时,它只打印我的人的朋友,现在我需要访问朋友的朋友(所选人的朋友的朋友)。

任务是这样的:朋友的朋友 - 那些距离所选用户只有两步但没有直接连接到所选用户的朋友,有人可以帮我这个吗?

<script> 
class Osoba{
constructor(id,firstName,surname,age,gender,friends){
    this._id = id ;
    this._firstName = firstName;
    this._surname = surname;
    this._age = age;
    this._gender = gender;
    this._friends = friends;
    }

    get id() {
        return this._id;
    }
    set id(id){
        this._id = id;
    }
    get firstName() {
        return this._firstName;
    }
    set firstName(firstName){
        this._firstName = firstName;
    }
    get surname() {
        return this._surname;
    }
    set surname(surname){
        this._surname = surname;
    }
    get age() {
        return this._age;
    }
    set age(age){
        this._age = age;
    }

    get gender() {
        return this._gender;
    }
    set gender(gender){
        this._gender = gender;
    }

    get friends() {
        return this._friends;
    }
    set friends(friends){
        this._friends = friends;
    }

}

var osobe = [];


   $(function() {$.getJSON('https://raw.githubusercontent.com/Steffzz/
   damnz/master/data.json', function(data) 
    {
        var json = jQuery.parseJSON(JSON.stringify(data));

        for(person of json)
        {

            var id = person['id']  ;
            var firstName = person['firstName'] ;
            var surname = person['surname'] ;
            var age = person['age'] ;
            var gender= person['gender'] ;  
            console.log("json is:",JSON.stringify(json,undefined,3));
            var friends = person['friends'].map(
            function(friendId){console.log("friendID is:",friendId);
            var friend = json.find(function(person){return 
            person.id===friendId;});
            console.log("friend is:",JSON.stringify(friend,undefined,2));
            return {
                     firstName:friend.firstName,
                     surname:friend.surname
                                        }
                                }
                );

            var x = new Osoba(id,firstName,surname,age,gender,friends); 
            osobe.push(x);
        }     
        console.log(osobe);
        document.write(JSON.stringify(osobe[6]));

     }) 
});

1 个答案:

答案 0 :(得分:1)

从问题的标题我理解这个结构:

const rootArray = 
[
    [
        { 
            key1: ['item1','item2'],
            key2: ['item3', 'item4']
        },

    ]
]

console.log(rootArray[0][0]["key2"][1]);

// Will print 'item4'

发布截屏后编辑:

由于它们不在您正在打印的对象中,因此您根本没有要为对象本身获取的数据。它不在那里。 您需要从这些朋友中挑选某种uniqueId或其他标识符,并查询您的数据库(或存储整个用户及其连接列表的任何地方)并选择其他朋友。