Вам понадобится использовать какое-то хранилище, такое как localStorage или внутреннюю базу данных, такую как MySQL
Поскольку SO не поддерживает фрагменты localStorage, вот код jsfiddle приведенного ниже кода:
const possibleColors = [
"#10ace3",
"#f26529",
"#c62328",
"#e53434",
"#ffba49",
"#99c24d",
"#7e1d1d"
]
function getColor(str) {
// Attempt the get the item from local storage (returns null otherwise)
let color = localStorage.getItem(str)
if(!color) {
// Nothing was in local storage, select a random color
color = possibleColors[Math.floor(Math.random() * possibleColors.length)]
// Save the color to local storage for use next time
localStorage.setItem(str, color)
}
// Return the color that was or now is in local storage
return color
}
console.log('jim', getColor('jim'))
console.log('bob', getColor('bob'))
console.log('jim', getColor('jim'))
console.log('brass monkey', getColor('brass monkey'))
console.log('jim', getColor('jim'))
console.log('brass monkey', getColor('brass monkey'))
console.log('brass monkey', getColor('brass monkey'))
Повторный запуск сценария несколько раз даст одинаковые результаты с одной и той же строкой. Перезагрузка страницы будет делать то же самое, так как значения хранятся в хранилище.
// Example possible output:
//
// jim #7e1d1d
// bob #c62328
// jim #7e1d1d
// brass monkey #e53434
// jim #7e1d1d
// brass monkey #e53434
// brass monkey #e53434