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)

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

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

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


版权声明:本文为wq1051852572原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。