@Sawayadi

Как заменить числа на слова через map?

У меня есть строка чисел - '80 75 60 90'. Мне надо заменить их на слова с определенным условием: если число в диапазоне 50-100, то заменить на слово "Первый", для числа от 30 до 50 на "Второй", для числа от 10 до 30 на "Третий". Также надо реализовать через map.
Я пробовал сделать это сам, но выводит только запятые.
var str = '80 75 85 90';
var arr1 = str.split(' ');
    var doubles = arr1.map(function(arr1) {
  for(var i=0; i < arr1.length; i++) {
    if(arr1[i]>=50 && arr1[i]<=100) {
      arr1[i]="Первый";
    }
    if(arr1[i]>=30 && arr1[i]<=50) {
      arr1[i]="Второй";
    }
    if(arr1[i]>=10 && arr1[i]<=30) {
      arr1[i]="Третий";
    }
  }
});
    alert(doubles);
  • Вопрос задан
  • 111 просмотров
Решения вопроса 3
Seasle
@Seasle Куратор тега JavaScript
\( ゚ヮ゚)/
function replacer(string, expression, mapper) {
  return (string.match(expression) || []).map(mapper);
}

function match(rawNumber) {
  let number = parseInt(rawNumber);
  
  if (number >= 10 && number < 30) {
    return 'Третий';
  } else if (number >= 30 && number < 50) {
    return 'Второй';
  } else if (number >= 50 && number < 100) {
    return 'Первый';
  } else {
    return 'Что-то';
  }
}

console.log(replacer('80 75 85 90 10 30 0', /\d+/g, match));
// ['Первый', 'Первый', 'Первый', 'Первый', 'Третий', 'Второй', 'Что-то']
Ответ написан
Morpheus_God
@Morpheus_God
var str = '80 25 85 90';
var strArr = str.split(' ');
var res = strArr.map((item)=>{
		console.log(item);
		if(item >= 50 && item <=100){
    		item = "First";
    }
   else if(item >= 30 && item <= 50){
    		item ="Second";
    }
    else if(item >=10 && item <= 30){
    	item ="Third";
    }
    return item;
});
console.log(res);
Ответ написан
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
var str = '5 80 75 30 85 90 10 30 0';
var out= str.split(/ /).map(n=>(n=+n,n<10?`${n}`:n<30?'Третий':n<50?'Второй':n<100?'Первый':`${n}`)).join(' ');
console.log(out); // 5 Первый Первый Второй Первый Первый Третий Второй 0
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Sportrecs Москва
от 150 000 до 200 000 ₽
29 нояб. 2020, в 22:37
500 руб./за проект
29 нояб. 2020, в 20:54
3000 руб./за проект
29 нояб. 2020, в 20:40
25000 руб./за проект