通过这段代码,我想实现输出
name: Gunnar
,但我得到{ name: 'Gunnar' }
,如何删除输出中Gunnar周围的''
?
let keyName = "name";
let value = "Gunnar";
let person = {
[keyName]: value
};
console.log(person)
我猜这与“价值”有关,但我不知道如何解决它。
通过这段代码,我想实现输出
,但我得到name: Gunnar
,如何删除输出中{ name: 'Gunnar' }
周围的''
?Gunnar
您的代码使用
console.log
输出一个对象。 console.log
函数将以标准格式输出它,以便在您的环境中输出对象。您的代码中没有任何内容旨在创建您想要的输出。
如果您想要输出
name: Gunnar
,那么您需要更改您的console.log
语句,以便输出该文本,而不是告诉它输出一个对象,例如:
console.log(`${keyName}: ${value}`);
let keyName = "name";
let value = "Gunnar";
// No need for this:
// let person = {
// [keyName]: value
// };
console.log(`${keyName}: ${value}`);
如果您需要
person
作为您的起点,但您仍然可以访问keyName
,那么您可以这样做:
console.log(`${keyName}: ${person[keyName]}`);
let keyName = "name";
let value = "Gunnar";
let person = {
[keyName]: value
};
console.log(`${keyName}: ${person[keyName]}`);
如果您不想使用
keyName
或value
,那么不清楚您想要做什么。也许您想为每个属性输出多行:
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]}`);
}
更多探索:
您可以覆盖
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)