SoundCloud API-基于系统中的ID创建用户配置文件
SoundCloud API - create user profiles based on ID in system
我有一个系统,它接收一组SoundCloud用户ID,通过一系列SC.get函数对它们进行迭代,以获得每个用户的信息(用户ID、用户名、关注和流派偏好)。
<script src="//connect.soundcloud.com/sdk.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
<body>
<script>
//Initialize soundcloud API with client ID
SC.initialize({
client_id: "54cb0ff94ff9313ef6ca4674e9fe3026"
});
var userIds = [9110252, 55829847, 145189041, 4184647, 225458844, 22557004, 109447512];
var userids = [];
var usernames = [];
var userFollowingsE = [];
var profile =[];
var ready = 0
for(u = 0; u < userIds.length; u++){
var id = userIds[u];
getUserData(id);
function getUserData(userid){
//**************************** USER ***************************//
SC.get("/users/"+id, function(user){
userids.push(user.id);
usernames.push(user.username);
});
//********************** USER/FOLLOWINGS **********************//
SC.get('/users/'+id+'/followings',function(followings) {
var userFollowings = [];
for(i = 0; i < followings.collection.length; i++) {
userFollowings.push(followings.collection[i].username);
}
userFollowingsE.push(userFollowings);
ready++
if(ready >= userIds.length) onComplete();
});
}
}
function onComplete(){
console.log(usernames);
console.log(userIds);
console.log(userFollowingsE);
}
var users = [
{ userid: this.userids,
username: this.usernames,
genre: this.genres,
followings: this.followings,
}
]
</script>
</body>
我希望系统将这些信息位与对象中的相应用户相关联,例如
var users = {
user9110252: {
userid = userid,
username = username,
genrePref = genre
followings = followings
}
}//etc...
然而,系统每次输出的数组都会更改顺序,我认为它们之间没有关联。
我不确定如何做到这一点,欢迎任何建议。
如果您希望得到的数组看起来像您所描述的那样,您应该边构建用户Object,而不是创建多个数组然后合并它们。
这是我尝试过的,运行它,看看它是否能给你带来预期的结果。还要注意的是,我没有包括流派,因为我在提供的数据中找不到它们。
//Initialize soundcloud API with client ID
SC.initialize({ client_id: "54cb0ff94ff9313ef6ca4674e9fe3026" });
var userIds = [9110252, 55829847, 145189041, 4184647, 225458844, 22557004, 109447512],
users = [];
for(var i=0; i<userIds.length; i++){ getUserData(userIds[i]); }
function getUserData(userid){
// The user Object you'll be building
var myUser = {};
// Grab the info for this user
SC.get("/users/"+userid, function(user){
myUser.userid = user.id;
myUser.username = user.username;
// Then get its followings
SC.get('/users/'+userid+'/followings',function(followings) {
myUser.followings = followings.collection.map(function(user){
return user.username;
});
// Push that user to the user list
users.push(myUser);
// Execute the callback if all users have been fetched
if(users.length == userIds.length){ onComplete(); }
});
});
}
function onComplete(){
console.log(users);
// Just for the demo:
document.body.innerHTML = '<pre>' + JSON.stringify(users,0,2) + '</pre>';
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://connect.soundcloud.com/sdk.js"></script>
相关文章:
- 正在为循环创建唯一id
- 在JavaScript中创建全局唯一ID
- SoundCloud API-基于系统中的ID创建用户配置文件
- 如何为动态创建的元素分配唯一的id-Javascript
- 使用jQuery创建具有不同类名或ID的多个元素
- 单击旧列表只显示上次创建的id,应在单击时显示列表id
- 更新脚本以针对具有递增 ID 的新创建的表行运行
- 使用带有附加自动递增编号的当前 DATE 创建 ID
- 使用jquery删除id创建的元素
- 如何使用来自其他 json 对象的 id 和父 id 创建像树结构一样的 json
- 无法使用客户 ID 创建 Braintree 客户端令牌
- 如何在 JavaScript 中对以 # 开头的 ID 创建 OnClick 事件
- 使用按钮ID创建Javascript幻灯片
- SailsJS-使用自定义ID创建新记录
- 如何获取由填充对象中的特定许可证 ID 创建的记录
- 使用生成的ID创建JavaScript集合的最具性能的方法
- 在类似视图上使用class而不是id创建新视图
- 在Id创建之前使用getElementById
- 使用jQuery选择器从外部文件通过id创建Javascript对象
- 如何为Div类和类内的ID创建悬停效果