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