TypeError:无法从 行号 中的未定义中读取属性“分数”。

问题描述 投票:-1回答:1
在我的Java应用程序中的javascript下面执行代码时遇到零星的问题>

TypeError:无法从行号1的未定义中读取属性“ score”

{ if (typeof contextVar.queryFreeTechs != 'undefined' || contextVar.queryFreeTechs != '') { var sortable = []; var high; for (var value in contextVar.queryFreeTechs) { var obj = { userId: contextVar.queryFreeTechs[value].userId, score: contextVar.queryFreeTechs[value].score }; sortable.push(obj) } sortable.sort(function (a, b) { return b.score - a.score }); var newJsonData = {}; high = sortable[0].score; sortable.forEach(function (element) { if (element.score === high) { newJsonData[element.userId] = 100 } else { newJsonData[element.userId] = Math.ceil((element.score) / high * 100) } }); contextVar.utilisationScoreData = newJsonData } }

下面是我的Java代码

ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("nashorn"); Object retObj = engine.eval(rule.getScript(), bindings);

完整的堆栈跟踪

javax.script.ScriptException: TypeError: Cannot read property "score" from undefined in <eval> at line number 1 at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:470) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:454) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:406) at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:402) at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:155) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) at com.abc.rule.system.RunnableScript.executeScript(RunnableScript.java:162)

无法确定这是JavaScript还是我的应用程序出现了问题。任何帮助都会有所帮助。

我在从Java应用程序TypeError的javascript下面执行代码时遇到一个零星的问题:无法从行号1 {if(typeof ...

javascript java nashorn
1个回答
-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.