JS中对象比较数组对象中数据,没有增加有替换

设置一些模拟数据

	//模拟数组
	var arr = [
		{ id: 1, child: { id: 111, content: 'aaa' } },
		{ id: 2, child: { id: 222, content: 'bbb' } },
		{ id: 3, child: { id: 333, content: 'ccc' } }
	]
	//模拟对象
	var obj = { id: 3, child: { id: 333, content: 'ddd' } }

第一种方法,设置一个标志进行判断

	//方法一:
    function start() {
		var bool = false; // 判断对象是否在里面  默认为不在
		var index;
		for(var i = 0; i < arr.length; i++){
			if(obj.id == arr[i].id){
				bool = true; // 如果有就把状态变成在
				index = i;
			}
		}
		if(bool){ // 如果有就替换  没有就插入
			arr.splice(index,1,obj)
		}else{
			arr.push(obj)
		}
		console.log(arr)

	}
	start();

第二种方法:如果有通过return直接结束,没有增加

function start() {
		for (var i = 0; i < arr.length; i++) {
			if (arr[i]['id'] == obj['id']) {
				arr[i] = {};
				arr[i] = obj;
				return arr
			}
		}
		arr.push(obj)
		console.log(arr)
	}
	start();
	console.log(start())

猜你喜欢

转载自blog.csdn.net/qq_28004379/article/details/84550152