Нужно что бы код нашел первый неповторяющийся символ (буква цифра точка, без разницы) и показал его через alert.
Т. е например "123456789012345678982ШШБ82" -здесь не повторяется только буква Б, надо что бы код выявил мне Б
Уникальный элемент массива
JavaScript
Java Script задание с массивом
(( str = '' ) => {
if( ! str.length ) return;
let charMap = {}, min = 1, minChar = [];
for( let char of str ) {
if( char === ' ' ) continue;
charMap[ char ] = charMap[ char ] + 1 || 1;
}
for( let char in charMap ) {
if( charMap[ char ] === min ) {
minChar.push( char );
}
}
charMap.minChar = minChar;
console.log( charMap.minChar ); // ["0", "Б"]
})( '123456789012345678982ШШБ82' );
Код тут: https://jsfiddle.net/6b4oduac/24/
if( ! str.length ) return;
let charMap = {}, min = 1, minChar = [];
for( let char of str ) {
if( char === ' ' ) continue;
charMap[ char ] = charMap[ char ] + 1 || 1;
}
for( let char in charMap ) {
if( charMap[ char ] === min ) {
minChar.push( char );
}
}
charMap.minChar = minChar;
console.log( charMap.minChar ); // ["0", "Б"]
})( '123456789012345678982ШШБ82' );
Код тут: https://jsfiddle.net/6b4oduac/24/
1. Ошибаешься: первым не повторяющимся символом будет '0'.
2. Преврати строку на массив символов.
3. Отсортируй массив.
4. Выбери только те символы, которые отличаются от обоих соседей - получишь массив не повторяющихся символов.
5. Выбираешь из массива символ, который встретился раньше.
// Исходная строка
str = '123456789012345678982ШШБ82';
// Массив не повторяющихся символов
sym = str.split('').sort()
.filter((item, i, arr) => (i == 0 || arr[i-1] != item) && (i == arr.length-1 || arr[i+1] != item));
// Получение ответа
if (sym.length == 0) {
alert('Нет не повторяющихся');
} else {
alert(str[sym.reduce((prev, cur, i) => Math.min(prev, str.indexOf(cur)), str.length)]);
}
2. Преврати строку на массив символов.
3. Отсортируй массив.
4. Выбери только те символы, которые отличаются от обоих соседей - получишь массив не повторяющихся символов.
5. Выбираешь из массива символ, который встретился раньше.
// Исходная строка
str = '123456789012345678982ШШБ82';
// Массив не повторяющихся символов
sym = str.split('').sort()
.filter((item, i, arr) => (i == 0 || arr[i-1] != item) && (i == arr.length-1 || arr[i+1] != item));
// Получение ответа
if (sym.length == 0) {
alert('Нет не повторяющихся');
} else {
alert(str[sym.reduce((prev, cur, i) => Math.min(prev, str.indexOf(cur)), str.length)]);
}
Александр Aleksandr
А вот так намного короче (продолжаем цикл, пока позиция первого вхождения символа не совпадает с позицией последнего вхождения):
let i, str = '123456789012345678982ШШБ82';
for(i = 0; i < str.length && str.indexOf(str[i]) != str.lastIndexOf(str[i]); ++i);
if (i >= str.length) {
alert('Нет не повторяющихся');
} else {
alert(str[i]);
}
let i, str = '123456789012345678982ШШБ82';
for(i = 0; i < str.length && str.indexOf(str[i]) != str.lastIndexOf(str[i]); ++i);
if (i >= str.length) {
alert('Нет не повторяющихся');
} else {
alert(str[i]);
}
Нуок, задание, кому-то оно "нужно" и "надо".
ВОПРОС-то в чем?
ВОПРОС-то в чем?
Маленький Мык
Как логику написать? Чтоб код проверил не повторяется ли этот символ?
Ну вообще-то - 0 (нуль) первый не повторяющийся символ.
Можно использовать функцию str.indexOf(str, pos), в цикле обходить посимвольно строку и вызывать функцию indexOf с параметрами (символ, позиция символа + 1) если вернёт -1, значит вхождений нет и это не повторяющийся символ.
Можно использовать функцию str.indexOf(str, pos), в цикле обходить посимвольно строку и вызывать функцию indexOf с параметрами (символ, позиция символа + 1) если вернёт -1, значит вхождений нет и это не повторяющийся символ.
Похожие вопросы
- Как сделать проверку пустоты массива в Java Script .
- В чем разница C++ и Java-Script
- Java script (нужен код для wallpeper engine)
- Здравствуйте, друзья! Нужна помощь в CSS3, HTML 5 и Java Script
- Шахматная доска Нужен код шахматной доски используя java script и table-td-tr,напишите код пожалуйстаю
- Что может ява скрипт (Java Script)? Опишите в кратце.
- подключение и доступ к файлам java script
- Java Script простым языком
- Задача на Java Script. Олень взял в "Быстрозайм" $10 под 10% в день. Сколько он будет должен отдать через 100 дней?
- Как самому написать чит для csgo autobunnyhop в программе как pyton,c++, java script external hack
function minpls( str ) {
return str.split( '' ).filter(( el ) => {
return str.match( new RegExp( el, 'gmi' )).length === 1;
});
}
console.log( minpls( '123456789012345678982ШШБ82' )); // ["0", "Б"]
Код тут: https://jsfiddle.net/qsuntxwo/14/