Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2017, 20:39
Новичок на форуме
Отправить личное сообщение для ElenaAS Посмотреть профиль Найти все сообщения от ElenaAS
 
Регистрация: 07.11.2017
Сообщений: 3

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

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

Я попыталась это сделать с помощью startsWith , но неверно!
Может быть нужно перебрать массив и преобразовать каждый элемент массива в строку, а потом искать первую букву? вот не могу сообразить как перевести в строку каждый элемент массива
Ответить с цитированием
  #2 (permalink)  
Старый 07.11.2017, 20:51
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 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']) );
Ответить с цитированием
  #3 (permalink)  
Старый 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>
Ответить с цитированием
  #4 (permalink)  
Старый 07.11.2017, 21:12
Новичок на форуме
Отправить личное сообщение для ElenaAS Посмотреть профиль Найти все сообщения от ElenaAS
 
Регистрация: 07.11.2017
Сообщений: 3

преподаватель сказал и без функции
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2017, 21:21
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 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.
Ответить с цитированием
  #6 (permalink)  
Старый 07.11.2017, 21:42
Новичок на форуме
Отправить личное сообщение для ElenaAS Посмотреть профиль Найти все сообщения от ElenaAS
 
Регистрация: 07.11.2017
Сообщений: 3

Простите ,функцию startsWith не нужно, с ней я и сама сделала,здесь нужен другой какой то способ,более простой с помощью перебора массива
Ответить с цитированием
  #7 (permalink)  
Старый 07.11.2017, 22:01
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 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) );
Ответить с цитированием
  #8 (permalink)  
Старый 08.11.2017, 10:51
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

ruslan_mart,
А зачем toString() ?
Про запас - если вдруг числа появятся?
Ответить с цитированием
  #9 (permalink)  
Старый 08.11.2017, 10:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от Dilettante_Pro
А зачем toString() ?
Сообщение от ElenaAS
массив строк (или чисел,
Ответить с цитированием
  #10 (permalink)  
Старый 08.11.2017, 10:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

рони,
Пардон, проглядел.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрый поиск интервалов в массиве HJ90 Общие вопросы Javascript 19 16.08.2017 23:49
Поиск объектов в массиве Lynatik Общие вопросы Javascript 24 22.06.2013 12:43
Поиск в массиве, частичное совпадение фонарик Общие вопросы Javascript 25 04.04.2013 07:43
поиск HTMLElement'а в массиве z700i Общие вопросы Javascript 15 07.01.2012 21:13
Поиск в массиве через JavaScript Noran Общие вопросы Javascript 0 10.08.2008 17:31