如何在angularjs中找到多维数组中的重复值

时间:2015-12-24 07:18:10

标签: arrays angularjs multidimensional-array underscore.js

var arrayValues = [[2,3,5],[3,5]]
var commonArrayValues = _.intersection(arrayValues);

目前正在工作,

_.intersection([[2,3,5],[3,5]])
    Result: [2,3,5] 

但它应该起作用,(即外部阵列应该被删除)

_.intersection([2,3,5],[3,5])
    Expected Result: [3,5]

任何人都能给我一个合适的解决方案。提前谢谢。

3 个答案:

答案 0 :(得分:2)

您可以applyintersection一起使用,以获得您想要的内容:

var result = _.intersection.apply(null, arrayValues);



var arrayValues = [[2,3,5],[3,5], [2,3,5,6]]

var result = _.intersection.apply(null, arrayValues);

document.getElementById('results').textContent = JSON.stringify(result);

<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.2/underscore.js"></script>

<pre id="results"></pre>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

  

交叉点 * _。十字路口(数组)
  计算所有数组交集的值列表。每个值都在   结果存在于每个数组中。

     

_。交叉口([1,2,3],[101,2,1,10],[2,1]);   =&GT; [1,2]

var arrayValues = [[2,3,5],[3,5]]

这里arrayValues是一个有2个数组的数组。其中_.intersection需要数组作为参数而不是具有数组的数组。

_.intersection([2,3,5],[3,5]) 

或者

_.intersection(arrayValues[0],arrayValues[1])

将根据您的需要输出。

答案 2 :(得分:0)

我能想到的唯一方法是使用eval:

Array
(
    [menu_id] => Array
        (
            [0] => 1
            [1] => 1
            [2] => 2
            [3] => 2
        )

    [functions] => Array
        (
            [0] => AE
            [1] => AR
            [2] => AE
            [3] => AR
        )

)

evalString 会像String[] elements = result.split("\""); String transactionId = elements[3];

那样结束