JavaScript 删除某个数组中指定的对象

对象数组的操作,比较简单,这里只是记录一下方便使用

      //返回对象在数组中的下标
	function getIndexWithArr(_arr,_obj) {
		var len = _arr.length;
		for(var i = 0; i < len; i++)
		{
			if(isObjectValueEqual(_arr[i],_obj)) {
				return i;
			}
		}
		return -1;
	};

	//判断对象是否相等
	function isObjectValueEqual(a, b) {
		if(typeof(a) != "object" && typeof(b) != "object"){
			if(a == b){
				return true;
			}else{
				return false;
			}
		}
	    var aProps = Object.getOwnPropertyNames(a);
	    var bProps = Object.getOwnPropertyNames(b);

	    if (aProps.length != bProps.length) {
	        return false;
	    }

	    for (var i = 0; i < aProps.length; i++) {
	        var propName = aProps[i];

	        if (a[propName] !== b[propName]) {
	            return false;
	        }
	    }

	    return true;
	}
	//数组中删除指定对象
	function removeObjWithArr(_arr,_obj) {
	var length = _arr.length;
	for(var i = 0; i < length; i++)
	{
		if(isObjectValueEqual(_arr[i],_obj))
		{
			if(i == 0)
			{
				_arr.shift(); //删除并返回数组的第一个元素
				return;
			}
			else if(i == length-1)
			{
				_arr.pop();  //删除并返回数组的最后一个元素
				return;
			}
			else
			{
				_arr.splice(i,1); //删除下标为i的元素
				return;
			}
		}
	}
}

根据传入的数组arr和需删除的对象obj 即可删除

转载自csdn博客 原文链接 js根据删除数组里指定元素

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注