D'accord, c'est probablement une question vraiment stupide, mais je dois demander. J'ai un objet à l'intérieur d'un objet:
user.role
5 Réponses :
Si vous avez plusieurs rôles, je vous suggère de faire les rôles comme une liste séparée par des virgules, puis divisez à l'aide de la méthode Par exemple: P> < Pré> xxx pré> Mais au cas où vous n'aviez qu'un rôle, définissez-le simplement comme une chaîne comme dans p> string.split () code>.
Si tout ce que vous voulez, c'est le nom de la propriété à l'intérieur p> user.role code>, Object.Keys () est probablement ce que vous voulez. Il revient dans un tableau tous les noms de propriété d'un objet (également appelé "touches"). var user = {
playlist: "abcd1234",
role: {
basic: true,
admin: false,
free: true
}
};
const reduceTrues = (acc, [key, val]) => {
if (val === true) { acc.push(key); }
return acc;
}
const trueRoles = Object.entries(user.role).reduce(reduceTrues, []);
console.log(trueRoles);
// [ 'basic', 'free' ]
Utiliser p> objet.keys () code> méthode comme celui-ci var user = {
playlist: "abcd1234",
role: {
basic: true,
}
}
const role = Object.keys(user.role)
console.log(role) // ["basic"]
console.log(user.role[role]) // true
<html>
<script>
var user = {
playlist: "abcd1234",
role: {
basic: true,
admin: false,
free: false
}
};
for(role in user.role){
if(user.role[role]){
console.log(role);
}
}
</script>
</html>
So you are essentially iterating over unknown properties in the user.role object. For every role in user.role, check if it is true with user.role[role] - the [role] is the variable name we are not aware of - then i just console.log if it is true, you can run other logic if you wish.
Si vous souhaitez obtenir les propriétés d'un objet, vous pouvez utiliser une simple utilisation