如果键值为数字,如何更改对象中的键?

时间:2020-10-29 07:35:38

标签: javascript

我是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"

2 个答案:

答案 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, 威士忌:“没有库存”