Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вот такое задание, но я только в начале пути вэб разработки, подскажите как? (https://javascript.ru/forum/misc/75499-vot-takoe-zadanie-no-ya-tolko-v-nachale-puti-vehb-razrabotki-podskazhite-kak.html)

j0hnik 15.10.2018 23:07

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>

<textarea id="area"></textarea><br>
<button id="btn">сортировать</button>
	<script>
	var dic = ['a','b','c','d','e','f','g','h','i','j','k','l'];
	var ots = (s, el)=> !dic.includes(el) ? ++s : s;
	var sum = (s, el)=>{
	 	var ind = dic.indexOf(el);
	 	return ind != -1 ? s + ind : s;
	 };
btn.onclick = e => {
	var arr = area.value
	.split(/\n/)
	.sort((a,b)=>(a.split('').reduce(ots,0) - b.split('').reduce(ots,0) ) || (b.split('').reduce(sum,0) - a.split('').reduce(sum,0)));
	area.value = arr.join('\n');
};

	</script>
</body>
</html>


над производительностью не заморачивался.

рони 16.10.2018 00:09

сортировка строк
 
j0hnik,
Alexandroppolus,
:thanks:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

<textarea id="area" rows="20">b
a
1111b
1111a</textarea><br>
<button id="btn">сортировать</button>
    <script>
    var dic = ['a','b','c','d','e','f','g','h','i','j','k','l'].reduce((obj, char, i) => (obj[char] = i, obj), {});
btn.onclick = e => {
    var arr = area.value
    .split(/\n/)
    .map(el => el.split("").reduce((obj,char) => (char in dic ? obj.sum += dic[char] : obj.len++, obj), {str : el, len : 0, sum : 0}))
    .sort((a,b)=>(a.len - b.len || b.sum - a.sum));
    area.value = arr.map(Object.values).join('\n'); //строка, кол-во неизвестных, сумма известных
};

    </script>
</body>
</html>

Задорожный Виталий 18.10.2018 19:24

Здравствуйте уважаемые форумчане. Я нахожусь в начале пути. Помогите с задачей. Голову сломал и тупик.

Напишите программу которая в последовательности натуральных чисел определяет сумму чисел, кратных 6. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число кратное 6. Кол-во чисел не превышает 100. Введённые числа не превышают 300. Программа должна ввести одно число - сумму чисел кратных 6.
Вот что навоял, вариантов была масса - это последний.
var summ = 0;
for (var i = Number(prompt("число",0)); i<=100; i+=6){
if (i>100){
alert ("Ошибка");
}
else (summ +=i);
}
document.write(summ +"<br/>");
Понимаю что все не правильно, но знаю как отсеять методом деления (if i%6) continue. а как отсеянное вывести на экран? И alert не работает. Большое спасибо!

Задорожный Виталий 19.10.2018 12:10

или не туда или не то написал.:blink:

j0hnik 19.10.2018 15:47

Цитата:

Сообщение от Задорожный Виталий
Программа получает на вход количество чисел в последовательности, а затем сами числа.

не совсем понятно

рони 19.10.2018 16:22

j0hnik,
:-? получить длину массива от 1 до 100, затем элементы массива от 1 до 300, затем суммирование чисел кратных 6 из этого массива.

Задорожный Виталий 19.10.2018 17:08

я и сам плохо понимаю, но репетитор дал задачу и в интернете она тоже есть. только нет решения. количество чисел не превышает сто, а введенные числа не превышают 300. я подумал сначала что сделаю хоть как нибудь. сейчас надеюсь на Вас.

Задорожный Виталий 19.10.2018 17:20

Так откуда возьмутся 300 если ввели 100, а нужно только каждое 6 число. Если интересно, то их две однотипные задачи. Могу и её выложить, но если смогу эту то и ту тоже.

Nexus 19.10.2018 17:20

Можно оптимизировать.
const arrayLength=prompt('Кол-во элементов массива',3)||3;
const result=(prompt('Элементы массива через запятую','3,6,12')||'').split(',').slice(0,arrayLength).map(i=>+i.trim()).filter(i=>i%6===0).reduce((r,i)=>r+i,0);

alert(result);

рони 19.10.2018 17:40

Цитата:

Сообщение от Задорожный Виталий
Так откуда возьмутся 300 если ввели 100, а нужно только каждое 6 число.

это ваши фантазии, условия задачи совсем другие
Цитата:

Сообщение от Задорожный Виталий
Напишите программу которая в последовательности натуральных чисел определяет сумму чисел, кратных 6. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число кратное 6. Кол-во чисел не превышает 100. Введённые числа не превышают 300. Программа должна ввести одно число - сумму чисел кратных 6.



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