MediaWiki:NumerAlpha.js: mudanças entre as edições
Ir para navegação
Ir para pesquisar
Conteúdo deletado Conteúdo adicionado
Criou página com '// from: https://stackoverflow.com/questions/9083037/convert-a-number-into-a-roman-numeral-in-javascript // To be used in Template:CardCatalog and other places as well functi...' |
Sem resumo de edição |
||
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
// from: https://stackoverflow.com/questions/9083037 |
// from: https://stackoverflow.com/questions/9083037 |
||
// To be used in Template:CardCatalog and other places as well |
// To be used in Template:CardCatalog and other places as well |
||
/* jshint esversion: 10 */ |
|||
⚫ | |||
⚫ | |||
function mainFunc() { |
|||
⚫ | |||
⚫ | |||
key = [ |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
const key = [ |
|||
'', |
|||
'C', |
|||
'CC', |
|||
'CCC', |
|||
'CD', |
|||
'D', |
|||
'DC', |
|||
'DCC', |
|||
'DCCC', |
|||
'CM', |
|||
'', |
|||
'X', |
|||
'XX', |
|||
'XXX', |
|||
'XL', |
|||
'L', |
|||
'LX', |
|||
'LXX', |
|||
'LXXX', |
|||
'XC', |
|||
'', |
|||
'I', |
|||
'II', |
|||
'III', |
|||
'IV', |
|||
'V', |
|||
'VI', |
|||
⚫ | |||
'VIII', |
|||
⚫ | |||
]; |
]; |
||
let roman = |
let roman = ''; |
||
let i = 3; |
let i = 3; |
||
while (i--) roman = (key[+digits.pop() + i * 10] || |
while (i--) roman = (key[+digits.pop() + i * 10] || '') + roman; |
||
return Array(+digits.join( |
return Array(+digits.join('') + 1).join('M') + roman; |
||
} |
} |
||
const incrementElemsNumeral = document.querySelectorAll( |
const incrementElemsNumeral = document.querySelectorAll( |
||
'.increment-numeralpha-numeral', |
|||
); |
); |
||
for (let [i, element] of incrementElemsNumeral.entries()) { |
for (let [i, element] of incrementElemsNumeral.entries()) { |
||
element.innerHTML = `${ |
element.innerHTML = `${(i += 1)}. ${element.innerHTML}`; |
||
} |
} |
||
const incrementElemsRoman = document.querySelectorAll( |
const incrementElemsRoman = document.querySelectorAll( |
||
'.increment-numeralpha-roman', |
|||
); |
); |
||
⚫ | |||
⚫ | |||
} |
|||
} |
|||
if (document.readyState === 'complete' || document.readyState !== 'loading') { |
|||
⚫ | |||
mainFunc(); |
|||
⚫ | |||
} else { |
|||
document.addEventListener('DOMContentLoaded', mainFunc); |
|||
} |
} |
Edição atual tal como às 13h34min de 19 de agosto de 2024
// from: https://stackoverflow.com/questions/9083037
// To be used in Template:CardCatalog and other places as well
/* jshint esversion: 10 */
function mainFunc() {
function romanize(num) {
if (Number.isNaN(num)) return NaN;
const digits = String(+num).split('');
const key = [
'',
'C',
'CC',
'CCC',
'CD',
'D',
'DC',
'DCC',
'DCCC',
'CM',
'',
'X',
'XX',
'XXX',
'XL',
'L',
'LX',
'LXX',
'LXXX',
'XC',
'',
'I',
'II',
'III',
'IV',
'V',
'VI',
'VII',
'VIII',
'IX',
];
let roman = '';
let i = 3;
while (i--) roman = (key[+digits.pop() + i * 10] || '') + roman;
return Array(+digits.join('') + 1).join('M') + roman;
}
const incrementElemsNumeral = document.querySelectorAll(
'.increment-numeralpha-numeral',
);
for (let [i, element] of incrementElemsNumeral.entries()) {
element.innerHTML = `${(i += 1)}. ${element.innerHTML}`;
}
const incrementElemsRoman = document.querySelectorAll(
'.increment-numeralpha-roman',
);
for (let [i, element] of incrementElemsRoman.entries()) {
element.innerHTML = `${romanize((i += 1))}. ${element.innerHTML}`;
}
}
if (document.readyState === 'complete' || document.readyState !== 'loading') {
mainFunc();
} else {
document.addEventListener('DOMContentLoaded', mainFunc);
}