В моем коде я получаю массив с числами. Некоторые числа являются двузначными или даже древовидными. Так это выглядит так:
[48, 48, 48, 48, 99, 52, 50, 100, 97, 101, 102, 51, 98, 100, 49, 100, 51, 100, 52, 53, 54, 57, 99, 49, 53, 52, 55, 51, 55, 52, 100, 57, 99, 56, 52, 49, 99, 99, 102, 52, 56, 50, 51, 55, 53, 49, 56, 97, 53, 101, 99, 53, 55, 54, 99, 57, 50, 97, 99, 56, 97, 50, 53, 53, 49, 54, 52, 55, 50, 54, 56, 57, 56, 50, 54, 54, 57, 50, 53, 55, 48]
И это код, как я этого добился:
function hashData(s) {
let hashArray = [];
for(let i = 0; i < s.length; i++){
let code = s.charCodeAt(i);
hashArray.push(code);
}
hashArray.toString().split("")
console.info(hashArray)
return hashArray;
}
Чего я хочу добиться, так это:
[4, 8, 4, 8, 4, 8, 4, 8, 9, 9, 5, 2] //and so on.
Как видите, я попробовал метод toString()
, но, похоже, он ничего не дает.
Просто .join
введите числа в одну длинную строку, затем превратите ее обратно в массив (из отдельных символов) и сопоставьте с числом.
const hashData = s => [...s.join('')].map(Number);
console.info(hashData([48, 48, 48, 48, 99, 52, 50, 100, 97, 101, 102, 51, 98, 100, 49, 100, 51, 100, 52, 53, 54, 57, 99, 49, 53, 52, 55, 51, 55, 52, 100, 57, 99, 56, 52, 49, 99, 99, 102, 52, 56, 50, 51, 55, 53, 49, 56, 97, 53, 101, 99, 53, 55, 54, 99, 57, 50, 97, 99, 56, 97, 50, 53, 53, 49, 54, 52, 55, 50, 54, 56, 57, 56, 50, 54, 54, 57, 50, 53, 55, 48]))
Вы можете присоединиться и получить новый массив.
const
values = [1, 23, 456, 7890],
result = Array.from(values.join(''), Number);
console.info(result);
я слышал что-то вроде метода splice(), может попробовать?