console.log(previousCompetitors);
console.log(competitors);
if(data.isVisible) {
var moveIndexTo = [];
for(var q=0; q<competitors.length;q++) {
moveIndexTo.push(-1);
}
for(var i = 0; i<competitors.length; i++) {
for(var j = 0; j<previousCompetitors.length; j++) {
console.log(competitors[i].name);
console.log(previousCompetitors[j].name);
if(competitors[i].name === previousCompetitors[j].name) {
moveIndexTo[j]= i;
break;
}
}
}
console.log(moveIndexTo);
}
Я медленно схожу с ума, пытаясь выяснить, что здесь происходит. У меня есть массив данных конкурентов, которые обновляются по порядку. Они оба являются массивами, и я хочу отслеживать изменения с предыдущего заказа.javascript loop string сравнение головная боль
Я передаю данные и вижу, что порядок данных был изменен, но каждый раз, когда массив moveIndexTo становится [0,1,2,3,4,5], подразумевая, что предыдущие конкуренты имеют равные заказ. Как их можно изменить, когда я консолью их в верхней части блока кода, когда я выполняю сравнение строк?
конкурентный и previousCompetitors принимают примерно то образуют
[{имя: 'name1'}, {имя: 'name2'}, {имя: 'name3'}, {имя: 'NAME4'}, {имя : 'name5'}, {name: 'name6'}]
с большим количеством движений в каждом объекте. Итак, если это было раньше, то конкуренты тогда были бы такими, как
[{name: 'name6'}, {name: 'name2'}, {name: 'name3'}, {name: 'name4'}, {name : 'name5'}, {имя: 'name1'}].
Обратите внимание на переключатель name1 и name6. Поэтому я ожидал бы, что moveIndexTo будет [5,1,2,3,4,0].
Можете ли вы [редактировать] на ваш вопрос, чтобы показать вход образца и соответствующего требуемого выходного сигнала (то есть, пример содержимого 'competitors' и' previousCompetitors', и что должно быть после 'moveIndexTo'? – nnnnnn
Данные довольно большие и вложенные. Но это просто массив объектов, у каждого объекта есть поле имени, а также многие другие. Мое намерение - использовать moveIndexTo для записи, где объект в позиции j в предыдущихCompetitors в настоящее время находится в конкурентах, сохраняя i в j-м индексе moveToIndex. –
Я вставлял ваши образцы данных и код в скрипту, и результат был «[5,1,2,3,4,0]», как и ожидалось: https://jsfiddle.net/1jxmsewr/ – nnnnnn