要檢查的對象是JavaScript的數組,你可以使用Array.isArray(obj)
(爲支持它的瀏覽器),喜歡的JavaScriptCore實現它,你可以編寫自己的JSValueIsArray
功能,像這樣:
bool JSValueIsArray(JSContextRef ctx, JSValueRef value)
{
if (JSValueIsObject(ctx, value))
{
JSStringRef name = JSStringCreateWithUTF8CString("Array");
JSObjectRef array = (JSObjectRef)JSObjectGetProperty(ctx, JSContextGetGlobalObject(ctx), name, NULL);
JSStringRelease(name);
name = JSStringCreateWithUTF8CString("isArray");
JSObjectRef isArray = (JSObjectRef)JSObjectGetProperty(ctx, array, name, NULL);
JSStringRelease(name);
JSValueRef retval = JSObjectCallAsFunction(ctx, isArray, NULL, 1, &value, NULL);
if (JSValueIsBoolean(ctx, retval))
return JSValueToBoolean(ctx, retval);
}
return false;
}
嗨@Emmanuel,我得到了另外一個問題:如果對象是一個數組,如何獲得它的元素?謝謝! –
好的,我現在得到了答案。 –
https://developer.apple.com/documentation/javascriptcore/1395924-jsvalueisarray – Maruku