Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Массивы, поиск в массиве (https://javascript.ru/forum/misc/71290-massivy-poisk-v-massive.html)

ElenaAS 07.11.2017 20:39

Массивы, поиск в массиве
 
Добрый вечер! Помогите пожалуйста вот с такой задачей:В скрипте первоначально задайте произвольный массив строк (или чисел, если это указано в задании). Результаты выполнения скрипта выведите функцией console.log.

В массиве найти все элементы, начинающиеся на "А" и занести их в другой массив.

Я попыталась это сделать с помощью startsWith , но неверно!
Может быть нужно перебрать массив и преобразовать каждый элемент массива в строку, а потом искать первую букву? вот не могу сообразить как перевести в строку каждый элемент массива

ruslan_mart 07.11.2017 20:51

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

ElenaAS,
<script>
   var arr = ["A1", "A2", "B5"];
   arr = arr.filter(function(str) {
    return str.startsWith("A")
})
document.write(arr)
</script>

ElenaAS 07.11.2017 21:12

преподаватель сказал и без функции

ruslan_mart 07.11.2017 21:21

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) );

ElenaAS 07.11.2017 21:42

Простите ,функцию startsWith не нужно, с ней я и сама сделала,здесь нужен другой какой то способ,более простой с помощью перебора массива

ruslan_mart 07.11.2017 22:01

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) );

Dilettante_Pro 08.11.2017 10:51

ruslan_mart,
А зачем toString() ?
Про запас - если вдруг числа появятся?

рони 08.11.2017 10:53

Цитата:

Сообщение от Dilettante_Pro
А зачем toString() ?

Цитата:

Сообщение от ElenaAS
массив строк (или чисел,

:-?

Dilettante_Pro 08.11.2017 10:58

рони,
Пардон, проглядел.


Часовой пояс GMT +3, время: 06:12.