我正在构建一个基本的Chrome应用程序,它构建了这样的字符串:
"1 + 4 - 3 + -2"
看到您无法在Chrome应用中使用eval()
,如何才能获得类似字符串的答案?
例如。如果这只是一个普通的网页,我会使用这样的东西:
var question = {
text: "1 + 4 - 3 + -2",
answer: eval(this.text)
}
是否有任何可能的方法将eval()
替换为其他内容来回答question.text
这样的字符串?
答案 0 :(得分:3)
尝试将字符串修改为
"+1 +4 -3 -2"
利用String.prototype.split()
,Array.prototype.reduce()
,Number()
var question = {
text: "+1 +4 -3 -2",
answer: function() {
return this.text.split(" ")
.reduce(function(n, m) {
return Number(n) + Number(m)
})
}
};
console.log(question.answer())

答案 1 :(得分:0)
试试这个
var question = {
text: "1 + 4 - 3 + -2",
answer: eval(ans(question.text))
}
console.log('Text : '+question.text);
console.log('answer : '+question.answer);
使用字符串替换方法
function ans(str){
var s = str.replace(/\s/g, '')
console.log('S : '+s);
return s;
}