今天处理js的时候,我想摘除数组里的一个元素,然后保持队列不变化,并且长度减一,js只有shift,不符合我的要求,只删除数组元素,值设为空了,并且长度不变化。所以自己实现了一个线性表的删除操作。
没办法,临时看了篇数据结构的文章:http://student.zjzk.cn/course_ware/data_structure/web/xianxingbiao/xianxingbiao2.2.2.2.htm
写下了如下算法,有js版和php版,原理一样,就是数组元素从后往前移,覆盖掉需要删除的节点,然后总数减少,js和php实现机制稍微不同。
[ PHP版 ]
function delete_array_element($array, $i)
{
$len = count($array);
for ($j=$i; $j<$len; $j++)
{
$array[$j] = $array[$j+1];
}
array_pop($array);
return $array;
}
[ JavaScript版 ]
function delete_array_element(arrayData, i){
var j;
for(j=i; j<arrayData.length; j++){
arrayData[j] = arrayData[j+1];
}
--arrayData.length;
return arrayData;
}
本文介绍了一种在JavaScript中手动删除数组指定元素的方法,通过将后续元素向前移动来覆盖待删除元素,最后减少数组长度,实现了删除操作而不使用内置的shift方法。
2318

被折叠的 条评论
为什么被折叠?



