我是javascript新手,并有一个问题:例如,如果它们的 value 是 number ,我想更改键。我的代码有什么问题?
const order = {
wine : 100,
vodka : 200,
beer : 300,
whisky : "not in stock"
};
function change(obj) {
for (var prop in obj) {
if (typeof obj[prop] === "number") {
prop = "is number";
}
}
}
change(order);
console.log(order);
我希望输出为
is number : 100,
is number : 200,
is number: 300,
whisky : "not in stock"
答案 0 :(得分:0)
执行此操作
prop =“是数字”;
它将“ is number”分配给名为“ prop”的变量。如果要更改密钥,请删除现有密钥并创建一个新密钥。
此外,键在对象中是唯一的。您不能有多个同名键。
function change(obj) {
for (var prop in obj) {
if (typeof obj[prop] === "number") {
obj["is number"] = obj[prop];
delete obj[prop];
}
}
}
答案 1 :(得分:0)
要更改键(如果值是数字),则需要先克隆键和值。 然后,您需要删除对象中的密钥,一旦将其删除,就应该再次将其注入到对象中。
`function change(obj) {
for (var prop in obj) {
if (typeof obj[prop] === "number") {
obj['is_number_' + obj[prop]] = obj[prop]
delete obj[prop]
}
}
}`
结果应如下所示: is_number_100:100, is_number_200:200, is_number_300:300, 威士忌:“没有库存”