いくつかの関連する問題の解決策を探しています。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を見つけることができます
は、引数の配列を受信します。
[参照先のドキュメント](https://v8docs.nodesource.com/io.js-3.0/d1/d83/classv8_1_1_data.html)を見ると、 'v8:Array'はオブジェクトです。だから、新しい配列を作るために、私はちょうど 'Nan :: New()'を実行するだけでかなり確実です(Node addonsをしばらく使っていない)。配列の反復については、わかりません。 –
確かに。それはうまくいった。 (v8 :: Arrayを直接使用する場合に必要なように)分離するための参照を必要としないため、コードをより良くします。先端に感謝します。答えとして投稿すると、私はそれを受け入れるでしょう。 – Jayesh