在JavaScript中将对象键设置为动态值

时间:2012-11-05 22:47:13

标签: javascript jquery

我循环遍历jQuery选择器并尝试将表单元素的值分配给容器变量,然后可以将其作为JSON传递给进一步的操作。

假设有三组复选框,每组都在自己的div中,名为group1,group2和group3。

这是伪代码,但是像这样:

var data = {};
var groups = {
    'group1': obj with a bunch of key val pairs for checkboxes,
    'group2': another obj,
    'group3': and another obj
 }; // these define divs / groups of checkboxes

// create all the checkboxes and divs from the groups object somewhere in here

//now build a function to loop over the groups and get any checked boxes
function getInputs(){
    $.each(groups, function(index, el) {
        // this is where I am stuck
        data.index = $('#' + index + ' input:checked'); // <-- how to do this?
    });
}

所以基本上我想将选中项的值添加到data对象中的正确项目 - 例如。如果我们循环遍历group1 div,则每个组的复选框都会添加到data.group1data.group2等。

如何将data.index评估为data.group1

2 个答案:

答案 0 :(得分:6)

简单如下:

data[index]

.......

答案 1 :(得分:0)

如果您能够使用ES6 JavaScript功能,则可以使用Computed Property Names轻松处理此问题:

app.filter('unique', function() {
    return function(input, key) {
        var unique = {};
        var uniqueList = [];
        for(var i = 0; i < input.length; i++){
            if(typeof unique[input[i][key]] == "undefined"){
                unique[input[i][key]] = "";
                uniqueList.push(input[i]);
            }
        }
        return uniqueList;
    };
});

[request.id]对象键具有动态值