我是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]));
})
});
答案 0 :(得分:1)
从问题的标题我理解这个结构:
const rootArray =
[
[
{
key1: ['item1','item2'],
key2: ['item3', 'item4']
},
]
]
console.log(rootArray[0][0]["key2"][1]);
// Will print 'item4'
发布截屏后编辑:
由于它们不在您正在打印的对象中,因此您根本没有要为对象本身获取的数据。它不在那里。 您需要从这些朋友中挑选某种uniqueId或其他标识符,并查询您的数据库(或存储整个用户及其连接列表的任何地方)并选择其他朋友。