fork download
  1. function compareDataViews(view1, view2) {
  2. if (view1.byteLength !== view2.byteLength) {
  3. return false;
  4. }
  5. const view1Array = new Uint8Array(view1.buffer);
  6. const view2Array = new Uint8Array(view2.buffer);
  7. for (let i = 0; i < view1Array.length; i++) {
  8. if (view1Array[i] !== view2Array[i]) {
  9. return false;
  10. }
  11. }
  12. return true;
  13. }
  14.  
  15. const data1 = new Uint8Array([0x12, 0x34, 0x56, 0x78]).buffer;
  16. const data2 = new Uint8Array([0x56, 0x78]).buffer;
  17.  
  18. const view1 = new DataView(data1, 0, 2);
  19. const view2 = new DataView(data1, 2, 2);
  20. const view3 = new DataView(data2);
  21.  
  22. console.log("view1 : " + view1.getUint16(0).toString(16));
  23. console.log("view2 : " + view2.getUint16(0).toString(16));
  24. console.log("view3 : " + view3.getUint16(0).toString(16));
  25. console.log("view1 == view2 : " + compareDataViews(view1, view2));
  26. console.log("view2 == view3 : " + compareDataViews(view2, view3));
  27. console.log("view1 == view3 : " + compareDataViews(view1, view3));
  28.  
Success #stdin #stdout 0.03s 17012KB
stdin
Standard input is empty
stdout
view1 : 1234
view2 : 5678
view3 : 5678
view1 == view2 : true
view2 == view3 : false
view1 == view3 : false