Search code examples
javascriptc++v8

how to a return a vector<T> from v8 c++ function


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; 
}

here I wanna return e1 to javascript module, could someone please let me know how to do this?


Solution

  • Use v8::Array, e.g:

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

    Obviously you still need to convert your empDetails instance to v8::Object for each entry in the vector.