9.2 KiB
title, localeTitle
| title | localeTitle |
|---|---|
| Drop it | Брось это |
Не забудьте использовать Read-Search-Ask если вы застряли. Попробуйте подключить программу
и напишите свой собственный код 
Проблема Объяснение:
В основном, в то время как второй аргумент неверен, вам нужно будет удалить первый элемент слева от массива, который был передан в качестве первого аргумента.
Связанные ссылки
Подсказка: 1
Вы можете использовать Array.prototype.shift() или фильтр, с которым вам лучше ознакомиться, чтобы решить эту проблему в нескольких строках кода.
попытаться решить проблему сейчас
Подсказка: 2
Shift возвращает удаленный элемент, который нам действительно не нужен, все, что нам нужно, это модифицированный массив, который остается.
попытаться решить проблему сейчас
Подсказка: 3
Если вы все еще не можете понять, как его решить с помощью сдвига, попробуйте решить его с помощью фильтра и проверьте, как работает фильтр, если вы знакомы с ним, тогда вы можете сделать код со сдвигом.
попытаться решить проблему сейчас
Осторожно, спойлеры!
Решение впереди!
Решение базового кода:
function dropElements(arr, func) {
// drop them elements.
var times = arr.length;
for (var i = 0; i < times; i++) {
if (func(arr[0])) {
break;
} else {
arr.shift();
}
}
return arr;
}
// test here
dropElements([1, 2, 3, 4], function(n) {return n >= 3;})
Код Объяснение:
- Создайте цикл for для проверки каждого элемента.
- Затем проверьте функцию, заданную, если true, а затем остановите, иначе удалите этот элемент.
- верните массив.
Связанные ссылки
Решение промежуточного кода:
function dropElements(arr, func) {
return arr.slice(arr.findIndex(func) >= 0 ? arr.findIndex(func): arr.length, arr.length);
}
// test here
dropElements([1, 2, 3, 4], function(n) {return n >= 3;});
Код Объяснение:
- Используйте функцию ES6
findIndex()чтобы найти индекс элемента, который проходит условие - Нарежьте массив из найденного индекса до конца
- Есть один крайный кейс! если условие не встречается ни с одним из элементов, «findIndex» будет возвращать
-1который помещает вход вslice(). В этом случае используйте простой условный оператор для возвратаfalseвместо-1. И тройной оператор (?
возвращает найденный индекс требуемых элементов, когда условие true, и длину массива в противном случае, чтобы возвращаемое значение представляло собой пустой массив, как указано.
Связанные ссылки
Расширенное решение для кода:
function dropElements(arr, func) {
while(arr.length > 0 && !func(arr[0])) {
arr.shift();
}
return arr;
}
// test here
dropElements([1, 2, 3, 4], function(n) {return n >= 3;});
Обозначение кода
- Используйте цикл while с
Array.prototype.shift()чтобы продолжить проверку и удаление первого элемента массива, пока функция не вернет значение true. Он также гарантирует, что сначала массив не пуст, чтобы избежать бесконечных циклов. - Верните фильтрованный массив.
Связанные ссылки
ПРИМЕЧАНИЯ ДЛЯ ВЗНОСОВ:
НЕ добавляйте решения, похожие на любые существующие решения. Если вы считаете, что это похоже, но лучше , попробуйте объединить (или заменить) существующее подобное решение.- Добавьте объяснение своего решения.
- Классифицируйте решение в одной из следующих категорий - Basic , Intermediate и Advanced .

- Пожалуйста, добавьте свое имя пользователя, только если вы добавили соответствующее основное содержимое . (
НЕ удаляйте существующие имена пользователей )
Увидеть
![]()
Wiki Challenge Solution TemplateдляWiki Challenge Solution Templateдля справки.



