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 ...