javascript - 如何从 v8 C++ 函数返回 vector <T>

标签 javascript c++ v8

struct empDetails {
int empId;
string name;
};

v8::Handle<v8::Value> GetEMPDetails(const v8::Arguments &args)
{  
    std::vector<empDetails>  e1;
    e1.push_back(empDetails(23, "paul"));
    e1.push_back(empDetails(45, "john")); 

    // how can I return V8 handle so that I can use this vector in 
    // my javascript module
    return e1; 
}

这里我想将 e1 返回到 javascript 模块,有人可以告诉我该怎么做吗?

最佳答案

使用v8::Array,例如:

v8::Handle<v8::Array> result = v8::Array::New(e1.size());
for (size_t i = 0; i < e1.size(); i++)
  result->Set(i, someObject);

显然,您仍然需要将 vector 中的每个条目的 empDetails 实例转换为 v8::Object

关于javascript - 如何从 v8 C++ 函数返回 vector <T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13282526/

相关文章:

javascript - 如何调用IE9的Ctrl-F并突出显示几个单词

php - 在页面中限制服务器请求

C++按私有(private)变量对数组进行排序

node.js - 了解 NodeJS WebSocket 服务器的对象创建和垃圾收集

javascript - 字符串切片的算法复杂度是多少? (实用,真实世界)

javascript - session 存储弹出不使用 session 存储

javascript - 当我从选择框中选择产品时,如何获取相关产品的价格?

c++ - 声明类型包含未扩展的参数包 'Args'

C++ 动态属性

javascript - Nodejs Addon - 将正则表达式字符串传递给 C++