Мне нужно проверить, является ли предоставленный параметр типом массива байтов или не используется Javascript. Как я могу это достичь? Пожалуйста посоветуй.Как проверить, является ли предоставленный параметр типом массива байтов в Javascript?
ответ
Потому что его непонятно, какой тип/экземпляр типизированного массива вы пытаетесь проверить, вот универсальная проверка. проверить, если byteLength присутствует, то он должен быть байт Массив
function isByteArray(array) {
if (array && array.byteLength !== undefined) return true;
return false;
}
Модифицированная версия Jonis Ответ: (это возвращает ArrayBuffer, который предназначен, чтобы содержать байт)
функция toUTF8Array (str) { var utf8 = новый ArrayBuffer (str.length);
for (var i=0; i < str.length; i++) {
var charcode = str.charCodeAt(i);
if (charcode < 0x80) {
utf8[i] = charcode;
continue;
}
if (charcode < 0x800) {
utf8[i] = (0xc0 | (charcode >> 6),
0x80 | (charcode & 0x3f));
continue;
}
if (charcode < 0xd800 || charcode >= 0xe000) {
utf8[i] = (0xe0 | (charcode >> 12),
0x80 | ((charcode>>6) & 0x3f),
0x80 | (charcode & 0x3f));
continue;
}
i++;
charcode = 0x10000 + (((charcode & 0x3ff)<<10)
| (str.charCodeAt(i) & 0x3ff));
utf8[i - 1] = (0xf0 | (charcode >>18),
0x80 | ((charcode>>12) & 0x3f),
0x80 | ((charcode>>6) & 0x3f),
0x80 | (charcode & 0x3f));
}
return utf8;
}
. Я использовал ответ Joni в http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array для преобразования строка в байтовый массив и использовал ваш метод для его проверки. Но возвращает false. Есть идеи? :( – mayooran
ну, это не типизированный массив, который предлагает Joni .. попробуйте изменить функцию Jonis, чтобы вернуть ArrayBuffer вместо простого массива. Конечно, вы можете установить для этого массива настраиваемое свойство, чтобы идентифицировать его позже, но то его все еще! == TypedArray – webdeb
@mayooran см. правки, это вернет ArrayBuffer – webdeb
- 1. Как проверить, является ли параметр шаблона типом итератора или нет?
- 2. Как проверить, является ли объект JavaScript упорядоченным типом объекта
- 3. Как проверить, пуст ли параметр массива?
- 4. Как проверить, является ли ответ ajax типом содержимого javascript?
- 5. Как проверить, является ли ObjCPropertyRefExpr типом UITextField
- 6. Как проверить, является ли MethodInfo.ReturnType типом System.Void?
- 7. Как проверить, является ли WeakTypeTag или Type конкретным типом?
- 8. проверить, является ли строка частью массива - javascript
- 9. Как проверить, является ли параметр символом Symbol?
- 10. Как проверить, является ли параметр функции постоянным?
- 11. Как определить, является ли System.Type настраиваемым типом или типом Framework?
- 12. Как проверить, является ли литерал длинным типом в java?
- 13. Как проверить, является ли объект типом коллекции в Java?
- 14. Как проверить, является ли общий параметр метода значением типа?
- 15. javascript - проверить, является ли var в массиве
- 16. Является ли строка [] не типом?
- 17. Array не является типом данных в Javascript?
- 18. Как проверить, является ли атрибут объекта типом метода-обертки?
- 19. Как проверить, является ли файл типом изображения на C++?
- 20. Как проверить, является ли внешний тип типом внутреннего типа?
- 21. Как проверить, является ли объект состояния типом ICollection
- 22. Является GenTraversableOnce [B] родительским типом массива [File]?
- 23. Как определить, является ли параметр массивом или объектом в JavaScript?
- 24. Как проверить, является ли параметр шаблона мощностью двух?
- 25. Как проверить, является ли объект разборчивым
- 26. Является ли "char []" подходящим типом?
- 27. Как проверить, содержит ли объект массив байтов?
- 28. Как проверить, является ли переменная массивом, но не конкретным типом массива в Swift?
- 29. Есть ли способ проверить, является ли тип типом перечисления?
- 30. Является ли «корневым типом» или просто типом?
Вы можете разместить пример допустимого массива и как его создать? – webdeb
http://stackoverflow.com/questions/12332002/how-to-store-a-byte-array-in-javascript, вот как создать массив байтов на javascript, тогда вам просто нужно сравнить параметр с выбранным типа '' 'param instanceof UInt8Array''' –
@MiguelLattuada это не всегда должен быть экземпляр ** UInt8Array **, это может быть также ** Int8Array ** или ** Uint8ClampedArray **, Я бы предложил проверить наличие 'byteLength' – webdeb