如何让JavaScript函数返回带引号的字符串输出?
解决console.log输出带引号字符串的问题
首先咱们得理清问题根源:你的unusedDigits函数其实已经正确返回了目标字符串(比如"09"),但console.log在打印字符串时,默认只会输出字符串的内容本身,不会带上包裹它的引号——这是浏览器和Node.js控制台的默认行为,不是你的函数逻辑出了问题。
要让输出显示带引号的字符串,你可以试试这几种方法:
方法1:在console.log里手动拼接引号
直接在打印时用模板字符串给结果套上双引号,简单直接:
console.log(`"${unusedDigits([12, 34, 56, 78])}"`); // 输出 "09" console.log(`"${unusedDigits([2015, 8, 26])}"`); // 输出 "3479"
方法2:修改函数让返回值自带引号
如果希望函数本身就返回带引号的结果,可以在返回时直接把字符串包裹起来:
function unusedDigits(numbers) { let s = numbers.join(''); let arr = s.split(''); let ch = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; let arraRes = []; for (let i = 0; i < ch.length; i++){ if (!arr.includes(ch[i])) { arraRes += ch[i]; } } return `"${arraRes}"`; // 这里给结果加上双引号 } console.log(unusedDigits([12, 34, 56, 78])); // 输出 "09"
方法3:用JSON.stringify自动生成带引号的输出
JSON.stringify会把字符串转换成符合JSON规范的格式,自动给字符串加上双引号,适合需要标准格式输出的场景:
console.log(JSON.stringify(unusedDigits([12, 34, 56, 78]))); // 输出 "09" console.log(JSON.stringify(unusedDigits([2015, 8, 26]))); // 输出 "3479"
另外顺便提个小优化:你的代码里arraRes初始化为数组但用+=拼接字符串,其实可以直接初始化为空字符串,还能省去转数组的步骤,代码更简洁:
function unusedDigits(numbers) { let s = numbers.join(''); let ch = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; let arraRes = ''; // 直接初始化为字符串 for (let i = 0; i < ch.length; i++){ if (!s.includes(ch[i])) { // 直接用字符串的includes方法,不用转数组 arraRes += ch[i]; } } return arraRes; }
内容的提问来源于stack exchange,提问作者Ector
相关产品推荐
相关产品推荐

