Нужно написать и вернуть true или false функцией isSorted. true - если сначала идут все цифры по возрастанию, а после буквы по алфавиту. false - понятно если все не по такому порядку. Примеры:
isSorted([0, 1, 2, 2, 2, 3, 'a', 'b', 'w']) === true
isSorted([0, 3, 1, 2, 2, 2, 'a', 'b', 'w']) === false
isSorted(['a', 1, 2, 2, 2]) === false
isSorted([1, 2, 2, 0, 'a']) === false
Моя логика была сначала выбрать цифры и поместить их в новый массив, если они не совпадают с индексами нового массива то вернуть false. Но почему-то в if элементы не добавляются а перезаписуют массив в моем примере.
let boxes = ['a', 1, 2, 2, 2];
for (let i = 0; i < boxes.length; i++) {
let newArray = new Array();
if (isFinite(boxes[i])) {
// console.log(boxes[i].charCodeAt(0));
newArray[i] = i;
console.log(newArray);
console.log(boxes[i]);
} else {
return false;
}
console.log(newArray);
}
Кто подскажет с решением. Вообще правильная ли логика и почему после if элементы не добавляются в массив а перезаписывают его?