0
나는 다음과 같습니다 속성의 값을 동적으로 설정할 수 있습니까?
var data.roles = "Admin:Xxxx:Data";
for (role in data.roles.split(':')) {
if (role == 'Admin') { user.data.role.isAdmin = true }
if (role == 'Data') { user.data.role.isData = true }
if (role == 'Xxxx') { user.data.role.isXxxx = true }
if (role == 'Test') { user.data.role.isTest = true }
}
이 내가 만약 검사없이이 작품을 만들 수있는 방법입니다. 내가 원하는 것은 data.roles에있는 모든 역할을 수행 할 수있는 솔루션을 갖추는 것입니다.
대해 forEach없이
var data = {roles: "Admin:Xxxx:Data"};
var user = {data: {role:{}}};
data.roles.split(':').forEach(function(v) {
user.data.role['is' + v] = true;
})
console.log(user.data.role.isXxxx); // true
브라우저에 대한 polyfill at MDN 있습니다 :
[JavaScript 객체에 동적으로 명명 된 속성을 추가 할 수 있습니까?] (http://stackoverflow.com/questions/1184123/is-it-possible-to-add-dynamically-named-properties-to -javascript-object) (아마도 필터와 함께), user.data.role [ "is"+ role] = true; ' – user2864740
문자열 자체에 대한 색인 생성은 어떻습니까? 'user.data.role [role] = true;' –