我想了解从另一个元素的所有元素中过滤数组的最佳方法.我试过过滤器功能,但它没有告诉我如何给它我想要删除的值.
就像是:
var array = [1,2,3,4];
var anotherOne = [2,4];
var filteredArray = array.filter(myCallback);
// filteredArray should now be [1,3]
function myCallBack(){
return element ! filteredArray;
//which clearly can't work since we don't have the reference <,<
}
Run Code Online (Sandbox Code Playgroud)
如果过滤功能没用,你会如何实现?
编辑:我检查了可能的重复问题,它可能对那些容易理解JavaScript的人有用.检查得很好的答案让事情变得简单.
对不起,如果已经提出这个问题,我不知道如何搜索它.
假设你有以下循环
for (i=0; i < n; i++)
for(j = i; j < n; j++)
Run Code Online (Sandbox Code Playgroud)
这是O(n ^ 2)还是O(nlog(n)),为什么?
我对python比较熟悉,那么javascript相当于:
In [25]: listA = [1,2,3,4,5,1,1]
In [26]: listB = [1,2]
In [27]: intersect = [element for element in listA if element in listB]
In [28]: intersect
Out[28]: [1, 2, 1, 1]
Run Code Online (Sandbox Code Playgroud)
这是我能得到的最接近的:
var arrA = [1,1,3,4,5,5,6];
var arrB = [1,5];
var arrC = [];
$.each(arrA, function(i,d){ if (arrB.indexOf(d)> -1){arrC.push(d);} ;});
Run Code Online (Sandbox Code Playgroud)
对首选方法有何评论?我看到了这个答案,但这并不是我想回答的问题.