【问题标题】:How can I change the value of an object by passing in the key as a function argument?如何通过将键作为函数参数传递来更改对象的值?
【发布时间】:2020-02-18 10:46:32
【问题描述】:

我试图通过传入对象键来使用函数更改对象键的值,以避免重复代码。

我设法使用“object.key = true”在单击事件中手动设置值,但是使用这种方法,我需要每次为每个事件侦听器都包含所需函数的其他方面,我正在尝试这样做避免。所以我尝试了其他对象方法,如“Object.keys(obj)”、“Object.value(obj)”、“Object.entries(obj)”和“Object.defineProperty(obj, key, value)”,但没有得出结论我的意图。

const object = {
    key1: false,
    key2: false,
    key3: false,
}

const func = (anyKey)=>{
    // method to pass in any key and set value to true
    // inlcuding other unrelated methods
}

button1.addEventListener('click', func(key1));
button2.addEventListener('click', func(key2));
button3.addEventListener('click', func(key3));

总结一下: 我想通过将键作为参数传递给函数来更改键的值,上面的方法我已经尝试向对象添加了键。欢迎任何意见

【问题讨论】:

标签: javascript object parameter-passing


【解决方案1】:

您的代码应该可以按预期工作,但问题是“func”函数也会在加载时执行,因为您在将其添加为侦听器时添加了 ()。这是一个小的 sn-p 应该会产生类似于您需要的东西。我做了一个切换按钮,按下时在 key1 上切换真假。

const object = {
    "key1": false,
    "key2": false,
    "key3": false,
}

const toggleValue = (anyKey)=>{
    object[anyKey] = !object[anyKey];

   console.log(object);
}

button1 = document.getElementById("button1");

button1.addEventListener('click', function(){
    toggleValue("key1");
});

【讨论】:

    猜你喜欢
    • 2021-12-30
    • 2020-10-25
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2014-06-07
    • 2016-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多