JavaScript 中的数组切片内的位移/翻转

我在javascript中有数组


var arrayHex = [0x50 , 0x4f , 0x53 , 0x54 , 0x20 , 0x2f , 0x20 , 0x48 , 

x54 , 0x54,.. 超过 50000 个元素]


现在我想对上述数组的某些切片的元素进行一些位移/位翻转。例如,


slice(2,6)... slice(30, 50), ... slice (300,400), etc. 

位移/翻转后,将此数组(位移/翻转)发送到我的函数或对其进行一些处理。是否可以 ?我怎么能在 JavaScript 中做到这一点?


编辑: 实际上,我只想对原始数组进行一些操作。意味着如果我对 arrayHex 的切片(即从第 10-20、50-80、230-450 等的索引)进行操作(即按位),那么这些操作必须反映在原始数组中,而不是在临时切片上。 . 下面是我的代码


var arrayHex = [0x65 , 0x34 , 0x30 , 0x35 , 0x65];

console.log("before slicing: arrayHex  =  ", arrayHex);

var sliced  = arrayHex.slice(1,3);

for (i=0; i<sliced.length; i++)

{

sliced[i]='0x65';

}

console.log("sliced : ",sliced);

console.log("after slicing arrayHex is : ",arrayHex);

输出是:


切片前:arrayHex = [ 101, 52, 48, 53, 101 ] 切片后: [101, 101 ] 切片后arrayHex 为: [ 101, 52, 48, 53, 101 ]


收到一只叮咚
浏览 257回答 1
1回答

慕沐林林

对的,这是可能的。为此,您可以遍历原始数组的每个返回切片的元素。使用您认为合适的双向运算符来实现您的目标或对每个元素执行您想做的任何操作。您应该注意到任何按位运算符的操作数首先被转换为有符号的 32 位整数。您可以使用此代码段作为大纲:start = 2;end = 6;sliced = arrayHex.slice(start, end);for (i = 0; i < sliced.length(); i++){&nbsp; &nbsp; &nbsp;//Do stuff on sliced[i]}如果要将更改反映回原始数组,请使用slice_index = 0;for (i = start; i < end; i++){&nbsp; &nbsp; &nbsp;arrayHex[i] = slice[slice_index];&nbsp; &nbsp; &nbsp;slice_index++;}slice_index = 0;如果您不想首先获取切片而是直接操作数组,那么您可以这样做for (i = 0; i < arrayHex.length(); i++){&nbsp; &nbsp; &nbsp;//Do stuff on arrayHex[i]}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript