微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

请解释下面的 JavaScript 代码,它返回数组中未配对元素的值?

如何解决请解释下面的 JavaScript 代码,它返回数组中未配对元素的值?

下面是从数组 [9,3,9,7,9] 中返回值 7 的工作代码,因为 7 是没有相同对的值,除 7 之外的所有其他值在数组中有一个相似的值对。

但是我没看懂这段代码,谁能逐行解释一下这段代码。请...

function check(array) {
        var s = new Set;
        
        array.forEach(v => s.delete(v) || s.add(v));
        
        return s.values().next().value;
    }
    
    console.log(check([9,9]));

解决方法

Set 只包含一个值一次,代码在 Array 元素中循环,并尝试从存在的 Set 中删除该值,如果没有将其添加到 Set 中,则在 Set 完成时只存在元素一次在数组中

,

这里首先创建一个集合,然后,对于数组中的每个元素,它检查集合中是否存在该元素,如果存在,则将其从集合中删除(因此,删除一对)

当它没有找到时,则存储,以等待下一对

这里有一个包含 5 个元素的数组的模拟

array = [1,3,2,1]

//first iteration
v = 1
set = [1]

//next iteration
v = 3
set = [1,3]

//next iteration
v = 3
set = [1] // the 3 was deleted

//next iteration
v = 2
set = [1,2]

//next iteration
v = 1
set = [2] // 1 was deleted

最后,它单独获取集合(或第一个)中的元素

因此使用数组 [4,4,4] 运行将返回 4,因为最后一个元素没有对

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。