1
new Uint8Array([1,2,3]).map((v,y)=>"0"+v+"0"+y)
> Uint8Array(3) [ 100, 201, 46 ] // actual
> ["0100","0201","0302"] // expected
new Uint8Array([1,2,3]).map((v,y)=>v+1)
> Uint8Array(3) [ 2, 3, 4 ] // actual as expected
[1, 2, 3].map(x => "0"+x);
> Array ["01", "02", "03"] // actual as expected

Since 302 is bigger than 256 (Uint8 max size), when converted we get 302%256 which is 46. Put this in as a proof we don't get just any number type, but specifically Uint8.

So how do I get an array of strings based on Uint8Array values?

asked Jul 6, 2022 at 7:31

1 Answer 1

2

the problem here is that Uint8Array.map returns an Uint8Array object you need to convert it in a normal array in order to achieve the result you are looking for

const uint8Array = new Uint8Array([1,2,3])
const res1 = uint8Array.map((v,y)=>"0"+v+"0"+y)
const res2 = [...uint8Array].map((v,y)=>"0"+v+"0"+y)
console.log(res1, res2)

answered Jul 6, 2022 at 7:44

1 Comment

this is so much simpler than I was thinking of a solution -- with custom for loops / custom map function

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.