js查找多维数组中的存在某个值,并全部删除

2024年08月01日 建站教程

var arr1=[{id:1, name:123, age:12},{id:2, name:1223, age:12},{id:3, name:123, age:12},{id:4, name:1223, age:12}]
function delArrVal(arr,val){
  for(let i=0;i<arr.length;i++){
     if(typeof arr[i].name==val){
     arr.splice(i,1)
    i--;
    } 
  } 
  return arr;
} 
delArrVal(arr1,123)

扩展方法

1、数据去重

function deletArrE(userInfoLS, examNo) {
	let list = [...userInfoLS];
	let result = [];
	let obj = {};
	for (let i = 0; i < list.length; i++) {
		if (!obj[list[i][examNo]]) {
			result.push(list[i]);
			obj[list[i].examNo] = true;
		}
	}
	return result;
}

2、根据某个相同参数合并

function getArrMerge(arr1, arr2) {
	const alData = arr2.map(item => {
		const data = arr1.find(i => item.examNo == i.examNo);
		return {
			...item,
			...data
		};
	});
}

3、删除指定索引数组

function Arrdel(a1, a2) {
	let arr = [];
	a2.forEach(item => {
			a1.splice(item, 1)
		})
		//过滤
	arr = a1.filter(item => item);
	return arr;
}

4、判断一个数组是否都存在于另一个数组

function isContained(a, b) {
	if (!(a instanceof Array) || !(b instanceof Array)) return false;
	if (a.length < b.length) return false;
	var aStr = a.toString();
	for (var i = 0, len = b.length; i < len; i++) {
		if (aStr.indexOf(b[i]) == -1) return false;
	}
	return true;
}

5、单数组去重

function unique(arr) {
	var newArr = [];
	for (var i = 0; i < arr.length; i++) {
		if (newArr.indexOf(arr[i]) == -1) {
			newArr.push(arr[i])
		}
	}
	return newArr;
}

6、拿到不同的数据

function getArrDifference(arr1, arr2) {
	return arr1.concat(arr2).filter(function(v, i, arr) {
		return arr.indexOf(v) === arr.lastIndexOf(v);
	});
}

7、多维数组中最里面一层小部位数组改成对象

function package(data) {
	data.forEach(function(item, index) {
		if (item.examParts) {
			var _arr = item.examParts
			_arr.forEach(function(ft, index) {
				for (var k in ft) {
					if (item[k]) {
						item[k] = item[k] + ',' + ft[k]
					} else {
						item[k] = ft[k]
					}
				}
			})
			delete item.examParts
		}
	})
	return data
}

8、根据id相同合并

function merge(arr1, arr2, id) {
	arr1.forEach(function(o, d) {
		for (var k in o) {
			arr2.forEach(function(t) {
				for (var key in t) {
					if (t[id] == o[id]) {
						t[k] = o[k];
					}

				}
			})
		}
	});
	return arr2
}

本文链接:http://so.lmcjl.com/news/9688/

展开阅读全文
上一篇:怎样新建python脚本 下一篇:mysql text字段
相关内容