我有一个简单的数据结构:
var data = function () {
return {
users: [
{
_id: 1,
firstname: 'Bob'
posts: [
{
_id: 1,
text: 'Great post',
posted_to: [2, 3, 4] // user id's
}
]
}
]
}
}
在posted_to
中取消引用用户的最佳方法是什么,这样当我访问users[0].posts[0].posted_to
时,我会获得一个用户对象列表,而不仅仅是id?
答案 0 :(得分:1)
var data = {
users: [
{
_id: 1,
firstname: 'Bob',
posts: [
{
_id: 1,
text: 'Great post',
posted_to: [2, 3, 4]
}
]
},
{_id:2},{_id:3},{_id:4}
]
}
function getUsersPostedTo() {
var result = [];
var postedToIds = data.users[0].posts[0].posted_to;
for (var i = 0; i<postedToIds.length; i++) {
var id = postedToIds[i];
for (var j = 0; j<data.users.length; j++) {
if (data.users[j]._id == id) {
result.push(data.users[j]);
}
}
}
return result;
}
var users = getUsersPostedTo();
PS:我将数据功能更改为对象var。