我正在编写一些JavaScript代码来解析用户输入的函数(用于类似电子表格的功能).解析了公式后,我可以将其转换为JavaScript并eval()在其上运行以产生结果.
但是,eval()如果我可以避免它,我总是回避使用,因为它是邪恶的(而且,无论是对还是错,我一直认为它在JavaScript中更加邪恶,因为要评估的代码可能会被用户改变).
那么,什么时候可以使用它?
有很多解决方案来检查/访问一个对象文字,给出一串点符号,但我需要做的是根据点符号字符串设置一个对象文字.这是非常技术性的,为什么我需要这样做,如果不可行,我会提出一个不同的解决方案.
这是我想做的事情:
var obj = {
'a': 1,
'b': 2,
'c': {
'nest': true
}
};
Run Code Online (Sandbox Code Playgroud)
我想要一个可以像这样工作的函数:
setDepth(obj, 'c.nest', false);
Run Code Online (Sandbox Code Playgroud)
这会改变对象:
var obj = {
'a': 1,
'b': 2,
'c': {
'nest': false
}
};
Run Code Online (Sandbox Code Playgroud)
我已经尝试了一个小时,但还没有找到一个好的解决方案.另一个帮助将非常感谢!
我有以下字符串:
let str = "modules.mas.mas-helper-provider.assets.locales";
Run Code Online (Sandbox Code Playgroud)
并希望将其转换为嵌套 JavaScript 对象 (JSON),结果如下:
{
"modules": {
"mas": {
"mas-helper-provider": {
"assets": {
"locales": ""
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)