如何去除JavaScript对象数字键名的单引号,使其无引号显示?
解决对象键名console.log显示单引号的问题
首先得明确:JavaScript对象的键只能是字符串或Symbol类型,你用数字4作为键时,会被隐式转换成字符串'4',控制台默认输出时会给字符串键加上单引号,这是浏览器/Node控制台的默认行为。
如果想要输出时显示不带单引号的数字键,你可以自定义输出格式,不用默认的console.log直接打印对象:
自定义打印函数示例
// 自定义打印对象的函数 function printObj(obj) { const parts = []; for (const key in obj) { // 尝试把键转成数字 const numKey = Number(key); // 如果转成数字后和原键字符串一致,就用数字格式显示 const displayKey = !isNaN(numKey) && String(numKey) === key ? numKey : `'${key}'`; parts.push(`${displayKey}: ${obj[key]}`); } console.log(`{ ${parts.join(', ')} }`); } // 你的原代码 let arr = [2, 3, 4, 11]; let myObj = {}; myObj[arr[2]] = true; // 用自定义函数打印 printObj(myObj); // 输出:{ 4: true }
补充说明
不管用哪种方式,对象内部的键本质还是字符串'4',只是通过自定义输出改变了显示形式。如果直接用console.log(myObj),控制台的显示格式是由运行环境决定的,没法直接修改它的默认输出规则。
内容的提问来源于stack exchange,提问作者gautam
相关产品推荐
相关产品推荐

