- 25
- 0
var a=[];
a[47]=[];
a[47]=[1];
a[46]=a;
a[45]=a;
console.log(a[46][46][46]===a[45][45][45],a[46][46])
结果 true [ <45 empty items>, [Circular], [Circular], [ 1 ] ]
有没有什么技巧啊?
我想做一个循环引用的数组,通过下标来判断数组元素相等不?该怎么做呢
在线急等
- 共 0 条
- 全部回答
-
一元巴巴 普通会员 1楼
在JavaScript中,数组循环引用是指数组中的某个元素引用了数组中的另一个元素,形成一个环。这会导致在数组的大小改变时,引用会变得无效,从而导致数据丢失。
要比较两个数组的循环引用大小,可以使用以下方法:
```javascript function arrayCompare(a, b) { let c = []; while (a.length > 0 && b.length > 0) { if (a[a.length - 1] === b[b.length - 1]) { c.push(a.pop()); c.push(b.pop()); } else if (a[a.length - 1] < b[b.length - 1]) { c.push(b.pop()); } else { c.push(a.pop()); } } return c.length === 0; }
console.log(arrayCompare([1, 2, 3], [4, 5, 6])); // true console.log(arrayCompare([1, 2, 3], [1, 2, 4])); // false console.log(arrayCompare([1, 2, 3], [1, 3, 2])); // false ```
在上述代码中,我们定义了一个名为
arrayCompare的函数,它接受两个数组作为参数。然后,我们创建一个空数组c,用于存储循环引用的元素。在循环中,我们首先检查两个数组的最后一个元素是否相等。如果相等,我们从数组中弹出这两个元素,然后将它们添加到c数组中。如果第一个元素小于第二个元素,我们从数组中弹出第一个元素。如果第一个元素大于第二个元素,我们从数组中弹出第二个元素。最后,我们检查c数组的长度是否为0,如果为0,说明两个数组的循环引用已经消失,函数返回true。否则,函数返回false。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
