Фильтрация элемента списка, начинающегося с буквы в JavaScript
Я пытаюсь отсортировать элементы списка, начинающиеся с "N" в новый список.
Почему это не будет работать?
const countries = ['Norway', 'Sweden', 'Denmark', 'New Zealand'];
function firstN(){
for (let i=0;i<countries.length;i++){
countries[i].startsWith("N")
}
}
let startsWithN = countries.filter(firstN())
Ответы
Ответ 1
Это примерно то же самое, что и ответ @adeneo, немного немного:
const countries = ['Norway', 'Sweden', 'Denmark', 'New Zealand'];
const startsWithN = countries.filter((country) => country.startsWith("N"));
console.log(startsWithN);
// Output: [ 'Norway', 'New Zealand' ]
Ответ 2
Вы фильтруете на основе условия, именованная функция возвращает true
или false
на основе этого условия
const countries = ['Norway', 'Sweden', 'Denmark', 'New Zealand'];
function firstN(item) {
return item.toLowerCase().indexOf('n') === 0;
}
let startsWithN = countries.filter(firstN);
console.log(startsWithN)
Ответ 3
Очень просто:
const countries = ['Norway', 'Sweden', 'Denmark', 'New Zealand'];
let startsWithN = countries.filter(function (country) {
return country[0].toLowerCase() === 'n';
});
console.log(startsWithN)
Ответ 4
countries.filter(s => s.toLowerCase().indexOf("n") == 0)
Ответ 5
Если ожидаемым результатом является новый массив, содержащий только элементы countries
, начинающиеся с "N"
, вы можете настроить существующий javascript
для создания массива внутри firstN
, передать входной массив в firstN
, .push()
, которые передают if
условие в цикле for
в новый массив, return
новый массив
const countries = ['Norway', 'Sweden', 'Denmark', 'New Zealand'];
function firstN(arr, letter) {
for (let i = 0, res = []; i < arr.length; i++) {
if (arr[i].startsWith(letter)) res.push(arr[i])
}
return res
}
let startsWithN = firstN(countries, "N");
console.log(startsWithN);
Ответ 6
Тем не менее:
const countries = ['Norway', 'Sweden', 'Denmark', 'New Zealand'];
const startsWithN = countries.filter(/./.test.bind(/^N/));
console.log(startsWithN);