如何去除输出中的“”?(Javascript的)

How do i get rid of "" in output? (Javascript)

提问人:Matilda123 提问时间:10/17/2023 最后编辑:KonradMatilda123 更新时间:10/17/2023 访问量:75

问:

使用此代码,我想实现输出,但我得到了,如何删除输出中的 Gunnar?name: Gunnar{ name: 'Gunnar' }''

let keyName = "name";
let value = "Gunnar";

let person = {
   [keyName]: value
};

console.log(person)

我猜它与“价值”有关,但我不知道如何解决它。

JavaScript 变量

评论

2赞 JSON Derulo 10/17/2023
欢迎来到 Stack Overflow!您正在记录一个对象,该对象没有所需的格式。您需要使用常见的字符串连接技术创建字符串
4赞 Layhout 10/17/2023
@hanshenrik它被称为动态键
1赞 evolutionxbox 10/17/2023
您无法摆脱 since 对象键和值是字符串"
3赞 VLAZ 10/17/2023
自 2015/ES6 开始@hanshenrik。好吧,早一点,因为主要浏览器供应商在规范正式发布之前就实现了该功能,但 2015 年可能已经足够正确了。此外,它不是一个“数组”,它只是计算机键名称的对象初始值设定项的一部分:为什么方括号允许使用变量值作为对象键?
2赞 VLAZ 10/17/2023
@evolutionxbox我的意思是,是的,对象键是字符串,但这并不重要。控制台将以任何它想要的方式向他们显示。没有要求显示引号或不显示引号。 例如,Firefox 的控制台则没有

答:

-2赞 Konrad 10/17/2023 #1

您可以覆盖,以便在打印时将其删除console.log"

const oldLog = console.log
const logger = (...args) => oldLog(args.map(arg => typeof arg === 'object' ? JSON.stringify(arg, null, 4).replace(/"/g, '') : arg).join(''))
console.log = logger

let keyName = "name";
let value = "Gunnar";

let person = {
   [keyName]: value,
};

console.log(person)

4赞 T.J. Crowder #2

使用此代码,我想实现输出,但我得到,如何删除输出中的周围?name: Gunnar{ name: 'Gunnar' }''Gunnar

您的代码使用 输出一个对象。console.log 函数将以标准格式输出它,以便在您的环境中输出对象。代码中的任何内容都不是为了创建所需的输出而设计的。console.log

如果你想要输出,那么你需要改变你的语句,以便你输出该文本,而不是告诉它输出一个对象,例如:name: Gunnarconsole.log

console.log(`${keyName}: ${value}`);

let keyName = "name";
let value = "Gunnar";

// No need for this:
// let person = {
//     [keyName]: value
// };

console.log(`${keyName}: ${value}`);

如果你需要成为你的起点,但你仍然可以访问 ,那么你可以通过动态属性访问来实现,如下所示:personkeyName

console.log(`${keyName}: ${person[keyName]}`);

let keyName = "name";
let value = "Gunnar";

let person = {
    [keyName]: value
};

console.log(`${keyName}: ${person[keyName]}`);

如果您不想使用 or ,则不清楚您要做什么。也许您想为每个属性输出多行:keyNamevalue

for (const key in person) {
    console.log(`${key}: ${person[key]}`);
}

let keyName = "name";
let value = "Gunnar";

let keyName2 = "age";
let value2 = 42;

let person = {
    [keyName]: value,
    [keyName2]: value2,
};

for (const key in person) {
    console.log(`${key}: ${person[key]}`);
}

或者,也许你期望一个对象只有一个属性(尽管在不知道属性名称是什么的情况下这样做通常不是很好的做法):

const firstKey = Object.keys(person)[0];
if (firstKey) {
    console.log(`${firstKey}: ${person[firstKey]}`);
}

let keyName = "name";
let value = "Gunnar";

let person = {
    [keyName]: value
};

const firstKey = Object.keys(person)[0];
if (firstKey) {
    console.log(`${firstKey}: ${person[firstKey]}`);
}

更多探索: