07.11.2017, 20:39
|
Новичок на форуме
|
|
Регистрация: 07.11.2017
Сообщений: 3
|
|
Массивы, поиск в массиве
Добрый вечер! Помогите пожалуйста вот с такой задачей:В скрипте первоначально задайте произвольный массив строк (или чисел, если это указано в задании). Результаты выполнения скрипта выведите функцией console.log.
В массиве найти все элементы, начинающиеся на "А" и занести их в другой массив.
Я попыталась это сделать с помощью startsWith , но неверно!
Может быть нужно перебрать массив и преобразовать каждый элемент массива в строку, а потом искать первую букву? вот не могу сообразить как перевести в строку каждый элемент массива
|
|
07.11.2017, 20:51
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
function filterByA(arr) {
return arr.filter(function(item) {
return item != null && item.toString().charAt(0).toLowerCase() === 'a';
});
}
console.log( filterByA(['apple', 'banana', 'orange', 'avocado', 'cheese']) );
|
|
07.11.2017, 20:58
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
ElenaAS,
<script>
var arr = ["A1", "A2", "B5"];
arr = arr.filter(function(str) {
return str.startsWith("A")
})
document.write(arr)
</script>
|
|
07.11.2017, 21:12
|
Новичок на форуме
|
|
Регистрация: 07.11.2017
Сообщений: 3
|
|
преподаватель сказал и без функции
|
|
07.11.2017, 21:21
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
function filterByA(arr) {
var res = [];
for(var i = 0, item; i !== arr.length; i++) {
item = arr[i];
if(item != null && item.toString().charAt(0).toLowerCase() === 'a') {
res.push(item);
}
}
return res;
}
console.log( filterByA(['apple', 'banana', 'orange', 'avocado', 'cheese']) );
const filterByA = arr => {
const res = [];
for(let item of arr) {
if(item != null && item.toString().startsWith('A')) {
res.push(item);
}
}
return res;
}
console.log( filterByA(['Apple', 'Banana', 'Orange', 'Avocado', 'Cheese']) );
const arrayStartsWith = by => arr => {
const res = [];
for(let item of arr) {
if(item != null && item.toString().startsWith(by)) {
res.push(item);
}
}
return res;
};
const filterByA = arrayStartsWith('A');
const filterByB = arrayStartsWith('B');
let testArr = ['Apple', 'Banana', 'Orange', 'Avocado', 'Cheese', 'Black Chocolate'];
console.log( filterByA(testArr) );
console.log( filterByB(testArr) );
Последний раз редактировалось ruslan_mart, 07.11.2017 в 21:32.
|
|
07.11.2017, 21:42
|
Новичок на форуме
|
|
Регистрация: 07.11.2017
Сообщений: 3
|
|
Простите ,функцию startsWith не нужно, с ней я и сама сделала,здесь нужен другой какой то способ,более простой с помощью перебора массива
|
|
07.11.2017, 22:01
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
const filterByA = arr => {
const res = [];
for(let item of arr) {
if(item != null && item.toString().charAt(0) === 'A') {
res.push(item);
}
}
return res;
}
console.log( filterByA(['Apple', 'Banana', 'Orange', 'Avocado', 'Cheese']) );
const arrayStartsWith = by => arr => {
const res = [];
for(let item of arr) {
if(item != null && item.toString().charAt(0) === by) {
res.push(item);
}
}
return res;
};
const filterByA = arrayStartsWith('A');
const filterByB = arrayStartsWith('B');
let testArr = ['Apple', 'Banana', 'Orange', 'Avocado', 'Cheese', 'Black Chocolate'];
console.log( filterByA(testArr) );
console.log( filterByB(testArr) );
|
|
08.11.2017, 10:51
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
ruslan_mart,
А зачем toString() ?
Про запас - если вдруг числа появятся?
|
|
08.11.2017, 10:53
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Сообщение от Dilettante_Pro
|
А зачем toString() ?
|
Сообщение от ElenaAS
|
массив строк (или чисел,
|
|
|
08.11.2017, 10:58
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
рони,
Пардон, проглядел.
|
|
|
|