我在文件test.js如下方法:如何從java 8中的js函數獲取數組輸出?
function avg(input, period) {
var output = [];
if (input === undefined) {
return output;
}
var i,j=0;
for (i = 0; i < input.length- period; i++) {
var sum =0;
for (j = 0; j < period; j++) {
//print (i+j)
sum =sum + input[i+j];
}
//print (sum + " -- " + sum/period)
output[i]=sum/period;
}
return output;
}
我想從Java中的數組傳遞給這個函數,並獲得Java中的JS輸出數組。 我用Java代碼:
double[] srcC = new double[] { 1.141, 1.12, 1.331, 1.44, 1.751, 1.66, 1.971, 1.88, 1.191, 1.101 };
try {
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("nashorn");
String location = "test.js";
engine.eval("load(\"" + location + "\");");
Invocable invocable = (Invocable) engine;
// double[] a = (double[]) invocable.invokeFunction("avg", srcC, 2);
System.out.println("obj " + invocable.invokeFunction("avg", srcC, 2));
} catch (Exception ex) {
LOGGER.error(ex.getLocalizedMessage());
}
我能看到平均JS函數的輸出,但我不知道如何從JS平均功能JS輸出數組在Java中
任何支持表示讚賞。
最好的問候, 奧勒利安
我只是看到了你的答案。比我的更好。非常感謝 – aurelianr 2014-09-03 12:53:19