Jint 数组函数 ECMA 5.1
Jint Array functions ECMA 5.1
我正在尝试使用 Jint (v2.10.4.0) 将一个任意 JSON 结构转换为另一个。但是,我在使用 map.
时遇到问题
根据 ECMA 5.1 语言规范,map 应该存在于 Array.prototye 上。但是,当我尝试使用它时,出现错误:Jint.Runtime.JavaScriptException: 'Object has no method '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 引入 polyfills?
您的代码将字符串值添加为 x
,因此 Jint 无法在字符串实例上找到 map
。您可能假设 SetValue
方法将参数作为脚本求值,但它实际上只是将 .NET 对象分配给 JavaScript 变量。
要分配一个数组,您需要传递一个 C# 数组,如 SetValue("x", new [] { 1, 2, 3, 4, 5 })
或 运行 等效脚本,如 Execute("var x = [1, 2, 3, 4, 5 ]")
.
我正在尝试使用 Jint (v2.10.4.0) 将一个任意 JSON 结构转换为另一个。但是,我在使用 map.
时遇到问题根据 ECMA 5.1 语言规范,map 应该存在于 Array.prototye 上。但是,当我尝试使用它时,出现错误:Jint.Runtime.JavaScriptException: 'Object has no method '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 引入 polyfills?
您的代码将字符串值添加为 x
,因此 Jint 无法在字符串实例上找到 map
。您可能假设 SetValue
方法将参数作为脚本求值,但它实际上只是将 .NET 对象分配给 JavaScript 变量。
要分配一个数组,您需要传递一个 C# 数组,如 SetValue("x", new [] { 1, 2, 3, 4, 5 })
或 运行 等效脚本,如 Execute("var x = [1, 2, 3, 4, 5 ]")
.