VUE 的 System.arraycopy 函数

我们在java中会经常用到 System.arraycopy 函数 这函数操作字节数组是相当方便的。
如果你不懂什么是 System.arraycopy 函数 请看 System.arraycopy的学习之路

刚学习完 还没来得及消化呢 在VUE中 用到了这个

在前端里面很少操作字节数组 ,我们一般操作的都是数组 所有在vue里面 我们也操作的是数组

废话不多说看代码

arrayCopy(srcBuff, offset, desBuffer, pos, length) {
		var newBuffer = srcBuff.slice(offset, offset + length);
			desBuffer = JSON.parse(JSON.stringify(desBuffer))
			if (pos == 0) {
					desBuffer = new Array()
					for (var i = 0; i < newBuffer.length; i++) {
						desBuffer.push(newBuffer[i])
					}
					return desBuffer
				} else {
					if (desBuffer.length == 0) {
						var headerBuff = desBuffer.slice(0, pos)
						for (var i = 0; i < newBuffer.length; i++) {
							headerBuff.push(newBuffer[i])
						}
						return headerBuff
					} else {
						var buffer = desBuffer.slice(0, pos);
						var lendBuffer = desBuffer.slice(pos, offset + length)
						if (buffer.length < pos) {
							var posss = pos - buffer.length
							// console.log("posss", posss, "   buffer.length", buffer.length)
							for (var i = 0; i < posss; i++) {
								buffer.push(0x00);
							}
						}
						for (var i = 0; i < newBuffer.length; i++) {
							buffer.push(newBuffer[i])
						}
						for (var i = 0; i < lendBuffer.length; i++) {
							buffer.push(lendBuffer[i])
						}
						desBuffer = buffer.map(Number);
						return desBuffer
					}
				}
			}

这里判断了 一种是拷贝长度是从0开始的 另外一种是不为0的情况(在里面又判断了一直到目标数组位置是从0开始的,还判断了长度不够的情况下补0)

剩下的就是调用了 调用我就不贴代码了

欢迎还有更懂的大佬来优化我的代码

在这里插入图片描述
哈哈哈 这就是我的态度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值