Показать сообщение отдельно
  #20 (permalink)  
Старый 20.12.2019, 21:08
Аспирант
Отправить личное сообщение для Marson Посмотреть профиль Найти все сообщения от Marson
 
Регистрация: 14.08.2018
Сообщений: 65

вы можете пожалуйста помочь мне дописать мой код? В конце не могу правильно рассадить гостей, т.е запушить в result. В конце нужно из arr[0] взять close, в нём найти первого сравнить с closeFilter[0] и запушить, потом из того кого запушили, с ним тоже самое сделать..

let arr = [
    { name: 'Ali', close: ['Vasil', 'Wog'] },
    { name: 'San', close: ['Vasil', 'Zena'] },
    { name: 'Vasil', close: ['San', 'Ali'] },
    { name: 'Wog', close: ['Zena', 'Ali'] },
    { name: 'Zena', close: ['San', 'Wog'] }
 ]

 function placeGuests(arr) { 
  let result = [arr[0]];

  for(var i=0; i<arr.length; i++){
сортируем всех кто в close по алфавиту
      arr[i].close.sort((a,b) => { 
    return a > b ? 1 : -1; 
  })

отсортировываем тех, кто уже усажен из всех close, убираем
   var closeFilter = arr[i].close.filter(closeName => {
        return !result.find(friend => {
        return closeName === friend.name
  })
  })
здесь нужно запушить того, кто ещё не усажен
  var users = arr.filter(el => {
    var currentUser = arr[0]
    currentUser = el
    return currentUser.close.find(u => {
    return u === closeFilter[0]
    })
  }) 
    result.push()  
  }
        
  return result;
 }

console.log(placeGuests(arr));

Последний раз редактировалось Marson, 20.12.2019 в 22:26.
Ответить с цитированием