Chrome应用程序:从字符串中进行数学运算

时间:2015-10-07 02:15:31

标签: javascript google-chrome-app

我正在构建一个基本的Chrome应用程序,它构建了这样的字符串:

"1 + 4 - 3 + -2"

看到您无法在Chrome应用中使用eval(),如何才能获得类似字符串的答案?

例如。如果这只是一个普通的网页,我会使用这样的东西:

var question = {
  text: "1 + 4 - 3 + -2",
  answer: eval(this.text)
}

是否有任何可能的方法将eval()替换为其他内容来回答question.text这样的字符串?

2 个答案:

答案 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;
}