javascript - 将数字转换为对应的字母

标签 javascript

function numObj(s){
  var emptyObj = {};
    s.forEach(function(num) {
      emptyObj[num] = String.fromCharCode(num);
   }); 
  return emptyObj;
}
console.log(numObj([118,117,120]));

我正在编写这个函数来将 int 转换为字母表中相应的 char。然而, 我期待输出 {'118': 'v', '117': 'u', '120': 'x' },但是当我运行代码时,我得到: { '117': 'u', '118': 'v', '120': 'x' } .有谁有任何解释为什么该函数会改变输入的顺序?

最佳答案

参见Does JavaScript Guarantee Object Property Order? , Nailing object property order

使用Map()

function numObj(s){
  let emptyObj = new Map();
    s.forEach(function(num) {
      emptyObj.set(num, {[num]:String.fromCharCode(num)});
   }); 
  return emptyObj;
}
let obj = numObj([118,117,120]);

for (let [key, value] of obj.entries()) {
  console.log(key, value)
}

Array()来存储对象

function numObj(s){
  let emptyObj = Array.from({length:s.length});
    s.forEach(function(num, i) {
      emptyObj[i] = {[num]:String.fromCharCode(num)};
   }); 
  return emptyObj;
}
let obj = numObj([118,117,120]);

for (let [key, value] of obj.entries()) {
  console.log(key, value)
}

关于javascript - 将数字转换为对应的字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40498556/

相关文章:

javascript - WebStorm - 调试器在断点处终止进程。进程完成,退出代码为 -1073741510

javascript - JQuery 突然不工作了

javascript - 当滚动条@bottom时使用JQuery使DIV宽度为100%

javascript - 为什么我的事件处理程序会导致 "is not a function"错误,但可以从 Firebug 控制台运行?

javascript - 未捕获的类型错误 : Cannot set property 'value' of > null"in Android

javascript - 如何实现新的 react-redux v6.0.0

javascript - if 语句中的速记 promise 未按预期工作

javascript - 导出对象中的对象

javascript - 当我尝试通过 js split 解析时,第一个元素是空字符串

javascript - 使用drawImage时“可能无法导出受污染的 Canvas ”