在jQuery中从数组中排除数组
我只想从另一个数组中排除一些数组元素,并使用js和jQuery获得结果。我发现自己在做一个双循环。每个()循环 或在jQuery中从数组中排除数组,jquery,Jquery,我只想从另一个数组中排除一些数组元素,并使用js和jQuery获得结果。我发现自己在做一个双循环。每个()循环 或 ~是查看值是否等于-1的快捷方式,如果$.inArray(el,exclude)返回-1,则您知道原始数组中的值不在exclude数组中,因此可以保留它。jQuery方法 可以使用jQuery方法从集合中排除项,如下所示: var exclude = [1,2,3,4]; var original = [0,1,2,3,4,5,6,7,8]; var result = $(orig
~
是查看值是否等于-1的快捷方式,如果$.inArray(el,exclude)返回-1,则您知道原始数组中的值不在exclude数组中,因此可以保留它。jQuery方法
可以使用jQuery方法从集合中排除项,如下所示:
var exclude = [1,2,3,4];
var original = [0,1,2,3,4,5,6,7,8];
var result = $(original).not(exclude);
这将返回一个jQuery对象,以选择结果作为数组,我们只需执行以下操作:
var finalArray = result.get();
// result: 0,5,6,7,8
完成
Array.prototype.difference=函数(arr){
返回this.filter(函数(i){return arr.indexOf(i)<0;});
};
您不需要jQuery来实现这一点,而它更适合于性能
finalArray = [];
orig = [0,1,2,3,4,5,6,7,8];
exclude = [1,2,3,4];
orig.forEach(function(x) { if (exclude[x] === undefined) { finalArray.push(x) }});
//[0,5,6,7,8]
使用jQuery的
。而不是。你可以找到它
修改本机对象原型的可能重复通常并不理想。~
是一个按位not运算符,它接受一个值并翻转每个二进制位。我们可以在这样的特殊情况下使用它,因为只有~-1
返回0
,并且!0==true,所以写~(x)
与(x)=-1
var exclude = [1,2,3,4];
var original = [0,1,2,3,4,5,6,7,8];
var finalarray = $.grep(original,function(el,i) {
return !~$.inArray(el,exclude);
});
var exclude = [1,2,3,4];
var original = [0,1,2,3,4,5,6,7,8];
var result = $(original).not(exclude);
var finalArray = result.get();
// result: 0,5,6,7,8
var exclude = [1,2,3,4];
var original = [0,1,2,3,4,5,6,7,8];
var finalArray = $(original).not(exclude).get();
Array.prototype.difference = function(arr) {
return this.filter(function(i) {return arr.indexOf(i) < 0; });
};
finalArray = [];
orig = [0,1,2,3,4,5,6,7,8];
exclude = [1,2,3,4];
orig.forEach(function(x) { if (exclude[x] === undefined) { finalArray.push(x) }});
//[0,5,6,7,8]
var original = [1,2,3];
var exclude = [1,2];
var tempArr = $(original).not(exclude);
var finalArray = tempArr .get();