js $.inArray()、splice()、filter()方法 使用笔记
代码
// 0920
/*var idArray = factorIds.split(',');
var idIndex = $.inArray('',idArray);
if(idIndex >= 0){
idArray.splice(idIndex,1);
}*/
var idArray = $.grep(factorIds.split(','),function(n,i){return n;},false);
/*var nodeArray = self.extendNodes.split(',');
var nodeIndex = $.inArray('',nodeArray);
if (nodeIndex >= 0) {
nodeArray.splice(nodeIndex,1);
}*/
var nodeArray = $.grep(self.extendNodes.split(','),function(m,j){
return m;
},false);
if (idArray.toString() != nodeArray.toString()) {
var diff = idArray.filter(function(id){
return nodeArray.indexOf(id) === -1;
});
}
一、$.inArray()方法
作用:用于查找元素在数组中的下标var idIndex = $.inArray('',idArray);
参数说明:
——参数1: 代表你需要查找的元素
——参数2:代表对象数组
二、 splice()方法
作用:用于对数组等进行切割,除去不需要的元素,获取需要的元素 idArray.splice(idIndex,1)
参数说明
——参数1:idIndex 需要删除的元素下标。
——参数2 :‘1’,需要删除的元素个数,如数值为0则表示不需要删除
三、array.filter()方法
作用:查取符合条件的元素并返回一个新的数组var diff = idArray.filter(function(id){ return nodeArray.indexOf(id) === -1; });
参数说明:array.filter(function(currentValue,index,arr), thisValue)
——参数1,function()方法:方法体内第一个参数必选,第二第三可选,第一个参数代表数组元素的当前值,如实例;
——参数2:对象作为该执行回调时使用,传递给函数,用作 “this” 的值。如果省略了 thisValue ,“this” 的值为 “undefined”,可选,此处未进行使用
结果:此处假设数组idArray 含有7个元素,数组nodeArray含有5个元素,数组idArray包含nodeArray,则返回剩余2个元素组成的数组。