从数组javascript中删除元素(相反的交集)
昨天晚上我问了这个问题 但我错了,我的解释和示例是关于两个数组之间的交集。从数组javascript中删除元素(相反的交集),javascript,arrays,Javascript,Arrays,昨天晚上我问了这个问题 但我错了,我的解释和示例是关于两个数组之间的交集。 我想问的是如何删除数组中其他数组中不存在的元素。 示例: Array A=> [a, b, c, d] Array B=> [b, d, e] Array C= removeElementsNotIn(A, B); Array C (after function)-> [a,c] 非常感谢。您可以使用.filter()有选择地删除未通过测试的项目 var c = a.filter(func
我想问的是如何删除数组中其他数组中不存在的元素。
示例:
Array A=> [a, b, c, d]
Array B=> [b, d, e]
Array C= removeElementsNotIn(A, B);
Array C (after function)-> [a,c]
非常感谢。您可以使用.filter()
有选择地删除未通过测试的项目
var c = a.filter(function(item) {
return b.indexOf(item) < 0; // Returns true for items not found in b.
});
var c=a.filter(函数(项){
返回b.indexOf(item)<0;//对于在b中找不到的项,返回true。
});
在函数中:
function removeElementsNotIn(a, b) {
return a.filter(function(item) {
return b.indexOf(item) < 0; // Returns true for items not found in b.
});
}
var arrayC = removeElementsNotIn(arrayA, arrayB);
函数removeElementsNotIn(a,b){
返回a.filter(函数(项){
返回b.indexOf(item)<0;//对于在b中找不到的项,返回true。
});
}
var arrayC=removeElementsNotIn(arrayA,arrayB);
如果您想获得真正的花式(仅限高级),可以创建一个返回筛选函数的函数,如下所示:
function notIn(array) {
return function(item) {
return array.indexOf(item) < 0;
};
}
// notIn(arrayB) returns the filter function.
var c = arrayA.filter(notIn(arrayB));
函数notIn(数组){
返回函数(项目){
返回数组.indexOf(item)<0;
};
}
//notIn(arrayB)返回filter函数。
var c=arrayA.filter(notIn(arrayB));
谢谢第二个Rikhdo
完整代码:
var a = [1,2,3,4,5];
var b = [4,5,6,7,8,9];
var new_array = a.filter(function(item) {
return b.indexOf(item) < 0; // Returns true for items not found in b.
});
alert(new_array);
// results: array[1,2,3]
var a=[1,2,3,4,5];
var b=[4,5,6,7,8,9];
var new_array=a.filter(函数(项){
返回b.indexOf(item)<0;//对于在b中找不到的项,返回true。
});
警报(新的_阵列);
//结果:数组[1,2,3]
演示:
a1=['s1','s2','s3','s4','s5'];
a2=['s4','s5','s6'];
a3=[];
函数功能(ar1、ar2){
var ar3=[];
对于(变量i=0;i