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())

 


版权声明:本文为qq_28004379原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。