gpt4 book ai didi

javascript - SoundCloud API - 根据系统中的 ID 创建用户配置文件

转载 作者:行者123 更新时间:2023-12-03 06:59:34 39 4
gpt4 key购买 nike

我的系统接受一系列 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...

然而,从系统输出的数组每次都会改变顺序,我认为它们之间没有关联。

我不确定如何执行此操作,欢迎提出任何建议。

最佳答案

如果您希望生成的数组看起来像您所描述的那样,您应该随时构建用户对象,而不是创建多个数组然后合并它们。

这是我尝试过的,运行它,看看它是否给你预期的结果。另请注意,我没有包含流派,因为我在提供的数据中找不到它们。

//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>

关于javascript - SoundCloud API - 根据系统中的 ID 创建用户配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37120801/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com