假设我有一个全局对象,只能从一个只接受字符串的函数访问。
以下内容在函数内定义。
function setItem(string, val) {
var scope = [{
apple : true,
test : 'aa'
},{
apple : false,
test : 'bb'
}];
var obj = {
'deep' : scope
}
obj.string = val;
return obj.string;
});
现在我想获取第一项,并覆盖数据。
setItem('scope[0].apple', '苹果已关闭'
);
显然,在尝试设置变量时,上面的方法不起作用,但我想知道是否有一种方法可以评估可以包含点符号和索引选择器的字符串值?
最佳答案
可以使用eval
来完成。
function setItem(string, val) {
var scope = [{
apple: true,
test: 'aa'
}, {
apple: false,
test: 'bb'
}];
var obj = {
'deep': scope
}
eval(string + ' = ' + JSON.stringify(val));
return eval(string);
};
alert(setItem('scope[0].apple', 'apple is off'));
关于javascript - 如何使用字符串作为选择器在对象中设置数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31469014/