for
.Возможно ли это сделать в javascript не копируя слова в переменную, а обращением к файлу
let xhr = new XMLHttpRequest();
xhr.open('GET', 'file.txt', false); // либо "file.json"
xhr.send();
let file = xhr.responseText || '';
// а дальше уже делаете с файлом, что хотите
// либо разбиваете на строки с помощью разделителя "перенос строки"
let strings = file.split(/[\r\n]+/);
// либо разбиваете на слова разделителем "перенос строки или пробел"
let words = file.split(/[\s\r\n]+/);
function encode(str) {
var chars = 'АБВГДЕЖЗИК';
return str.split('').map(function(n) {
return chars[n];
}).join('');
}
encode('13579'); // БГЕЗК
const encode = str => str.split('').map(n => 'АБВГДЕЖЗИК'[n]).join('');
encode('13579'); // БГЕЗК
Почему выдает фрагмент слова?
\b
, обозначающий границы слов, но он в данном случае неприменим, поскольку у вас тут кириллические символы. Можно представить границу слова как начало строки или пробельный символ или конец строки. Типа так:str.match(/(^|\s)[бвгджзк][аяеэюуёоиы]+[бвгджзк][а-яё]*($|\s)*?/gi).map(n => n.trim())
.length
– вероятно, собирались перебирать i от 0 до длины строки arr1
. Тут не массивы, а две строки.for (i=0; i<arr1.length; i++) {
for (j=0; j<arr2.length; j++){
i
букву, достаточно взять i-й элемент строки arr2
:arr2[ i ];
var arr1 = '3649824598';
var arr2 ='АБВГДЕЖЗИК';
arr1.split('').map(n => arr2[n]).join('') // ГЖДКИВДЕКИ
split('')
сделает из строки массив цифр;map()
применит к каждой цифре функцию, которая заменит цифру на соотв. букву из arr2
;join('')
склеит элементы массива (теперь уже буквы) в одну строку.