我在JavaScript中遇到了问题.
我有两个数组,我想检查它们是否在某些元素上相交,然后删除这些元素并返回没有相交元素的新数组.
例如:
Array A (
[0] => 0 [1] => 1
)
Array B (
[0] => 2 [1] => 1
)
Run Code Online (Sandbox Code Playgroud)
我想检查一下并返回:
Array result (
[0] => 0 [1] => 2
)
Run Code Online (Sandbox Code Playgroud)
我怎么能用JavaScript做到这一点?
查看库underscore.js.
假设你有两个数组,
var a = [1, 2];
var b = [2, 3];
Run Code Online (Sandbox Code Playgroud)
首先找到工会.
var all = _.union(a, b);
Run Code Online (Sandbox Code Playgroud)
然后找到十字路口.
var common = _.intersection(a, b);
Run Code Online (Sandbox Code Playgroud)
最后的答案应该是联盟和交叉点之间的区别.
var answer = _.difference(all, common)
Run Code Online (Sandbox Code Playgroud)
使用Array.filter,Array.lastIndexOf和Array.indexOf:
var array1 = [1,2,3,4,5];
var array2 = [2,3];
var unique = array1.concat(array2)
.filter(function (item, index, array) {
return array.indexOf(item) == array.lastIndexOf(item);
})
Run Code Online (Sandbox Code Playgroud)
默认情况下,这两种方法都不是100%跨浏览器,但两个链接都具有IE <= 8的安全填充程序
| 归档时间: |
|
| 查看次数: |
3874 次 |
| 最近记录: |