@Maxla93

Почему в new_items2 нет всех вещей, которые были function(err, items)?

Почему при вызове "FOR" после "function innova" в new_items2 нет всех вещей, которые были function(err, items) ?

> Получается, что вещи которые были найдены в function innova(name_sends, new_items) каким-то образом вырезаются с items и new_items2.

var loadMyInventory = function() {
load_my_retry--;
offers.loadMyInventory({appId: 730, contextId: 2}, function(err, items) {	
var new_items2 = items;
var new_items = items;			
					
for(var j = 0; j < g_ItemName.length; j++){
var sendItemName = g_ItemName[j];
console.log('sendItemName : ', sendItemName);
if (typeof sendItemName != 'undefined') {
	if (innova(sendItemName, new_items)) {
		console.log('Вещь "'+sendItemName+'" найдена в инвентаре');
	}
	else{	
		console.log('Вещь "'+sendItemName+'" не найдена в инвентаре');
	}
}
}

function innova(name_sends, new_items) {
	for(var a = 0; a < new_items.length; a++){
		if (name_sends === new_items[a].market_name) {
    console.log('market_name: '+new_items[a].market_name+' id: '+new_items[a].id);
			new_items.splice(a, 1);
			return true;
		}
	}
	return false;
}

/*
Почему вещи которые были найдены в функциях выше вырезаются с new2_items,
она ведь присвоена была раньше new_items
*/
for(var i = 0; i < new2_items.length; i++){					   
              console.log('loadMyInventory market_name: '+new2_items[i].market_hash_name+' id: '+new2_items[i].id);
		    }
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vshvydky
в твоем случае есть некий объект с данными obj ={ data ...} и ты делаешь на него сылки l1 b l2
l1 = obj;
l2 = obj;
в результате этого у тебя все равно один объект и две точки входа в него - l1 и l2
другими словами если объявить в объекте к примеру {param : 1} то получить эту 1 можно из l1.param ровно так же как и через l2.param и оба этих указателя могут изменять данные. Изменив их через 1 указатель ты получишь изменение данных в другом. вот и все.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы