过滤数组
var dataArr1=[];
$.each(data1,function(name,dataArr) {
if(pidx===dataArr['pid']){
//dataArr1 =dataArr;
dataArr1.push(dataArr)
//console.log(dataArr);
}
});
1.源码(使用部分es6语法)
/**
*
* 查找数组,返回匹配到的第一个index
*
* @param array 被查找的数组
* @param feature 查找特征 或者为一个具体值,用于匹配数组遍历的值,或者为一个对象,表明所有希望被匹配的key-value
* @param or boolean 希望命中feature全部特征或者只需命中一个特征,默认true
*
* @return 数组下标 查找不到返回-1
*/
function findArray(array, feature, all = true) {
for (let index in array) {
let cur = array[index];
if (feature instanceof Object) {
let allRight = true;
for (let key in feature) {
let value = feature[key];
if (cur[key] == value && !all) return index;
if (all && cur[key] != value) {
allRight = false;
break;
}
}
if (allRight) return index;
} else {
if (cur == feature) {
return index;
}
}
}
return -1;
}
2.使用示例:
//简单值数组
var arr = [0, 1, 2, 3, 4, 5];
var index = findArray(arr, 5);
//对象数组
var arr = [{
id : '1',
name : 'cmx',
age : 23
},{
id : '2',
name : '习大大',
age : 60
}];
//单个特征查找
var index = findArray(arr, {id: '1'});
//多个特征全满足查找
var index = findArray(arr, {id: '1', name: 'cmx'});
//多个特征单个满足查找(只需满足其中一个)
var index = findArray(arr, {id: '1', name: '习大大'}, false);
转载:https://blog.csdn.net/chemmuxin1993/article/details/53747696