javascript - 如何将内插字符串/动态属性传递到 Javascript 哈希?

标签 javascript dynamic-data

所以我有一个事件处理程序,基本上是这样的:

function foo(category_key, category_value){
   ...
   person.set({"data-"+category_key:category_value});
   ...
}

如果我这样做的话:

foo("年龄", 12);

我希望 set 函数引用该哈希中的“data-age”键...如何评估该键以便引用“data-age”而不是“data-age” “类别键”?在冒号之前的表达式两边加上括号会引发“无效的属性 ID”错误。

看来我可以创建一个新对象并传入如下内容:

function foo(category_key, category_value){
   ...
   var ob = new Object();
   ob["data-"+category_key] = category_value;
   person.set(ob);
   ...
}

但我想知道是否有更简洁的方法来做到这一点。

最佳答案

But I was wondering if there was a more terse way of doing this.

使其更简洁的唯一方法是使用 {} (object literal )而不是 new Object() — 并使用较短的变量名称。

function foo(key, value)
{
    ...
    var ob = {};
    ob['data-'+key] = value;
    person.set(ob);
    ...
}

这不一定会使整个代码更短,但您可以将该逻辑放入单独的函数中:

function bar(k, v)
{
    var o = {};
    o[k] = v;
    // or o['data'+k] = v;
    return o;
}

function foo(key, value)
{
    ...
    person.set(bar('data-'+key, value));
    // or person.set(bar(key, value));
    ...
}

关于javascript - 如何将内插字符串/动态属性传递到 Javascript 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6323714/

相关文章:

javascript - 如何提高大字符串的 javascript 工具提示的性能?

asp.net - VS 2010 中缺少 App_Code 文件夹

javascript - 附加/推送到 json 对象

javascript - 改变正方形相交区域的颜色

javascript - javascript 中的两人石头剪刀布

javascript - 剑道网格更新窗口缩放效果损坏

asp.net - 需要有关选择数据访问方法的建议

php - 创建时为 div 分配唯一 ID,然后使用 jquery 引用

java - 动态方法调度