Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
156 views
in Technique[技术] by (71.8m points)

javascript - Chrome App: Doing maths from a string

I have a basic Chrome App that I'm building that constructs strings like this:

"1 + 4 - 3 + -2"

Seeing as you can't use eval() in Chrome Apps, how can I get the answer to a string like so?

eg. If this was just a normal webpage I would use something like this:

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

Is there any possible way of replacing eval() with something else to answer a string like question.text?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try modifying string to

"+1 +4 -3 -2"

utilizing 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())

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...