文章详情页
javascript - 第二个for循环里面的j--什么意思?
浏览:249日期:2023-04-19 09:53:52
问题描述
var arr = [ 1,2,2,4,2 ];
for ( var i=0; i<arr.length; i++ ) {
for ( var j=i+1; j<arr.length; j++ ) { if ( arr[i] == arr[j] ) {arr.splice( j, 1 );j--; }}
}
问题解答
回答1:如果遇到重复项,从 arr 中 splice 掉。splice 掉之后,数组下一项仍是当前索引,所以要先 j--; 再循环中的 j++,保持索引正确。
比如,外层第2次循环,i = 1,j = 2,然后 arr[1] 是2,arr[2] 也是2,arr[2] 会被 splice 掉,数组变成 [1,2,4,2],下个元素 4 仍是第 2 项,如果不先 j--的话会漏掉。
回答2:楼上说的没错。补充一下,直接用 filter 就可以实现了。
var arr = [ 1,2,2,4,2 ];arr.filter(function (e, i) { return arr.indexOf(e) === i;})
标签:
JavaScript
相关文章:
1. macos - mac下docker如何设置代理2. javascript - Js对象怎么通过value值拿到key值?3. javascript - [MUI 子webview定位]4. vue.js - Vue APP基于webpack的项目,它是独立的项目吗?我后台是Java的,要如何实现,跨域请求吗?大牛请教一下谢谢5. 前端 - 怎样让scale缩小的元素不占据原来的空间?6. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?7. dockerfile - 为什么docker容器启动不了?8. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????9. java - SSH 根据id字段不能更新数据问题10. docker-compose 为何找不到配置文件?
排行榜
![javascript - [MUI 子webview定位]](http://www.haobala.com/attached/image/news/202302/105404965f.jpg)
网公网安备