相关疑难解决方法(0)

从JS数组中删除重复值

我有一个非常简单的JavaScript数组,可能包含也可能不包含重复项.

var names = ["Mike","Matt","Nancy","Adam","Jenny","Nancy","Carl"];
Run Code Online (Sandbox Code Playgroud)

我需要删除重复项并将唯一值放在一个新数组中.

我可以指出我尝试过的所有代码,但我认为它没用,因为它们不起作用.我也接受jQuery解决方案.

类似的问题:

javascript arrays unique duplicates

1225
推荐指数
28
解决办法
130万
查看次数

用JavaScript模仿套装?

我在使用JavaScript.我想存储一个唯一的,无序的字符串值列表,其中包含以下属性:

  1. 一个快速的方式来问'列表中的A'?
  2. 一种快速的方法'从列表中删除A(如果列表中存在)
  3. 一种快速的方法'如果它尚未存在,则将'添加到列表'.

我真正想要的是一套.有关在JavaScript中模拟集合的最佳方法的任何建议吗?

这个问题建议使用一个Object,键存储属性,并且值都设置为true:这是一种明智的方法吗?

javascript

218
推荐指数
6
解决办法
9万
查看次数

比较 2 个数组的差异(找到对称差异)

这应该是一个简单的算法,但我无法理解其中的逻辑。我需要采用 2 个数组,并仅保留在一个数组或另一个数组中找到的值,而不是同时保留两者。

例如,如果我有

arr1 [1,2,3,6]

arr2 [2,3,4,5,7]
Run Code Online (Sandbox Code Playgroud)

我想要再次有 2 个数组

arr1 [1,6]
arr2 [4,5,7]
Run Code Online (Sandbox Code Playgroud)

编辑:

我删除了旧代码并放入了一些其他工作代码。仍然不是很漂亮,但至少可以工作。我需要做的就是将 arr3 存储到 arr1 中,将 arr4 存储到 arr2 中。

    var arr3 = [];
    var arr4 = [];

    var foundMatch = false;

    //find all arr1 elements that don't match arr2 elements
    //store into arr4
    for(var i=0; i<arr1.length; i++)
    {
        foundMatch = false;
        for(var j=0; j<arr2.length; j++)
        {
            if(arr1[i] == arr2[j])
            {
                console.log("match found for [%s] [%s]", i, j);
                foundMatch = true;
                break;
            }
        }
        if(!foundMatch) …
Run Code Online (Sandbox Code Playgroud)

javascript arrays algorithm symmetric-difference

5
推荐指数
1
解决办法
596
查看次数