解体思路:
1.写一个对象trans用于保存罗马和数字之间的映射关系
2.重点在于当数值小的出现在数值大的左边时,会减去该数,出现在右边时会加上该数,因此需要与后面的进行比较
3.在得到s时,首先给它转换成字符串,并在末位加一个0
/*** @param {string} s* @return {number}*/
var romanToInt = function(s) {let trans = {I: 1,V: 5,X: 10,L: 50,C: 100,D: 500,M: 1000,0: 0}s = s + '0'let input = 0;for(let i=0; i < s.length-1; i++){if(trans[s[i]] < trans[s[i+1]]){ // 比较与后面一位的值input += 0 - trans[s[i]] // 比后面小,传入负数. 0 - str 是为了将其转换成数字类型计算} else{input += trans[s[i]] -0 // str -0 是为了将字符串转换成数字类型}}console.log(input);return input};