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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章