Проблема типизации

by Maxim_Wolf

JavaScript

const LIMIT = 10;
// несколько библиотечных функций для работы с массивами
const createList =()=>[];
const getFirst = ()=>[0];
const getNext = (current) => current+1;
const setMemberChecked = (buffer, index, value) =>{
  if(index<LIMIT){
    buffer[index] = value;
    return;
  }
  throw new Error('out of range')
}
const getMemberChecked = (buffer, index)=>{
  if(index<LIMIT){
    return buffer[index];
  }
  throw new Error('out of range')
};
const copyTopTenToArray = (buffer)=> buffer.slice(0,LIMIT);


const partyMembers = createList();
const index = getFirst();


console.log('----иногда работает нормально----')

//можете установить и прочитать значение в массиве по индексу
setMemberChecked(partyMembers, index, 'Griffin');
console.log(getMemberChecked(partyMembers, index));

//получить следующий индекс. установить и прочитать знечение
const next = getNext(index);
setMemberChecked(partyMembers, next, 'the invisible man');
console.log(getMemberChecked(partyMembers, next));

// но вы не можете сохранить весь массив
console.log('----почему только один элемент---')
console.log(copyTopTenToArray(partyMembers));