Csharp/C#教程:Jint ArrayfunctionECMA 5.1分享


Jint ArrayfunctionECMA 5.1

我正在尝试使用Jint(v2.10.4.0)将一个任意JSON结构转换为另一个。 但是,我在使用地图时遇到问题。

根据ECMA 5.1语言规范,Array.prototye 上应该存在map 。 但是,当我尝试使用它时,我收到一个错误: Jint.Runtime.JavaScriptException: ‘对象没有方法’map”

我正在测试这个

Engine engine = new Engine(); var doubles = engine.SetValue("x", "[ 1, 2, 3, 4, 5 ]") .Execute("x.map(function(a){ return a + a; })") .GetCompletionValue() .ToObject(); Console.WriteLine(doubles); Console.ReadKey(); 

理想情况下,我也想使用find,尽管这是ECMA6。 有没有什么我缺少使用Array.Prototype.map或有没有方法为Jint引入polyfill?

您的代码将字符串值添加为x ,因此Jint无法在字符串实例上找到map 。 您可能认为SetValue方法将参数作为脚本进行评估,但实际上只是将.NET对象分配给JavaScript变量。

要分配一个数组,您需要传递一个C#数组,如SetValue("x", new [] { 1, 2, 3, 4, 5 })或运行像Execute("var x = [1, 2, 3, 4, 5 ]")这样的等效脚本Execute("var x = [1, 2, 3, 4, 5 ]")

上述就是C#学习教程:Jint ArrayfunctionECMA 5.1分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1000049.html

(0)
上一篇 2021年12月27日
下一篇 2021年12月27日

精彩推荐