gpt4 book ai didi

javascript - 在 Node.js 附加代码中使用 Nan 创建数组

转载 作者:搜寻专家 更新时间:2023-10-31 23:30:31 24 4
gpt4 key购买 nike

我正在编写 Node 插件并使用 nan 尽可能多的库来编写代码。 Node 项目推荐它,因为它可以让你编写与不同版本的 v8 和 node 兼容的代码。

但是在浏览了他们的 documentation 之后很多次,我都没有找到任何关于在 nan API 中处理数组的指导。对于基本任务,例如处理由 Javascript 代码作为参数传递的数组,或在附加组件中实例化新数组对象并将其返回给 Javascript 代码。我们应该直接使用 v8::Array API 吗?我希望 Nan::New API 的一部分会更好地处理这个问题。

我错过了什么吗?

最佳答案

搜索我发现的一些相关问题的解决方案 this repository其中有一些非常好的工作示例。

我只是在这里指出与数组相关的转换以供快速引用。

在参数中接收数组:

Local<Array> array = Local<Array>::Cast(args[0]); //args[0] holds the first argument

for (unsigned int i = 0; i < array->Length(); i++ ) {
if (Nan::Has(array, i).FromJust()) {
//assuming the argument is an array of 'double' values, for any other type the following line will be changed to do the conversion
double value = Nan::Get(array, i).ToLocalChecked()->NumberValue();

Nan::Set(array, i, Nan::New<Number>(value + 1));
}
}

返回一个数组:

//Assuming arr is an 'array' of 'double' values
Local<Array> a = New<v8::Array>(3);
Nan::Set(a, 0, Nan::New(arr[0]));
Nan::Set(a, 1, Nan::New(arr[1]));
Nan::Set(a, 2, Nan::New(arr[2]));

info.GetReturnValue().Set(a); //here 'info' is 'const Nan::FunctionCallbackInfo<v8::Value>& info' received in Nan Method defintion parameter

具体解决办法可以引用here .

关于javascript - 在 Node.js 附加代码中使用 Nan 创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40029463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com