我在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 ]
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
对的,这是可能的。为此,您可以遍历原始数组的每个返回切片的元素。使用您认为合适的双向运算符来实现您的目标或对每个元素执行您想做的任何操作。您应该注意到任何按位运算符的操作数首先被转换为有符号的 32 位整数。您可以使用此代码段作为大纲:
start = 2;
end = 6;
sliced = arrayHex.slice(start, end);
for (i = 0; i < sliced.length(); i++)
{
//Do stuff on sliced[i]
}
如果要将更改反映回原始数组,请使用
slice_index = 0;
for (i = start; i < end; i++)
{
arrayHex[i] = slice[slice_index];
slice_index++;
}
slice_index = 0;
如果您不想首先获取切片而是直接操作数组,那么您可以这样做
for (i = 0; i < arrayHex.length(); i++)
{
//Do stuff on arrayHex[i]
}
添加回答
举报
0/150
提交
取消