首页 > 编程知识 正文

有序数组去重java,java遍历

时间:2023-05-06 21:09:07 阅读:12108 作者:4420

这个帖子已经有很多很棒的回答了。 但是,当我试图在ES5上下文中解决“从数组中删除第n个元素”时,我想分享我的经验。

JavaScript数组具有不同的从开头或结尾添加/删除元素的方法。 这些如下。

ARR.push(ele )- To add element(s ) s ) at the end of the array

ARR.unshift(ele )- To add element(s ) s ) at the beginning of the array

arr.pop (-toremovelastelementfromthearray

arr.shift (-toremovefirstelementfromthearray

基本上,上述方法不能直接用于从数组中删除第n个元素。

值得注意的是,与使用java迭代器相反,可以在迭代过程中删除集合的第n个元素。

基本上,它只保留一个数组方法Array.splice,用于执行第n个元素的删除。 (这些方法可以是其他方法,但在此问题的上下文中集中于删除元素。 )

Array.splice(index,1 )- removes the element at the index

这是从原始回答中复制的代码。 带注释:

var arr=['one '、' two '、' three '、' four'];

var i=arr.length; //initializecountertoarraylength

while (I----//decrementcounterelseitwouldrunintoindexoutboundsexception

{

if (arr [ I ]===' four '|arr [ I ]===' two ' () ) )

//splicemodifiestheoriginalarray

ARR.splice(I,1; //neverrunsintoindexoutboundsexception

控制台. log (element removed.arr : );

} else {

console.log (elementnotremoved.arr : );

}

控制台. log (arr;

}

另一个值得注意的方法是Array.slice。 但是,该方法的返回类型是删除的元素。 这也不会修改原始数组。 修改后的代码段如下:

var arr=['one '、' two '、' three '、' four'];

var i=arr.length; //initializecountertoarraylength

while(I----//decrementcounter

{

if (arr [ I ]===' four '|arr [ I ]===' two ' () ) )

控制台. log (element removed.arr : );

控制台. log (arr.slice (I,i 1);

控制台. log (original array : );

控制台. log (arr;

}

}

不过,也可以使用Array.slice删除第n个元素,如下所示: 这是因为可以观察到它是更多的代码。 因此,效率低下。

var arr=['one '、' two '、' three '、' four'];

var i=arr.length; //initializecountertoarraylength

while(I----//decrementcounter

{

if (arr [ I ]===' four '|arr [ I ]===' two ' () ) )

控制台. log (arrayafterremovalofithelement : );

ARR=ARR.Slice(0,I ).concat (arr.slice ) I1 );

控制台. log (arr;

}

}

为了在redux函数式编程中实现不变性,Array.slice方法非常重要

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。