javascript通过变量值创建对象

时间:2015-10-07 17:10:23

标签: javascript jquery object javascript-objects

我想根据变量的值创建一个对象。我希望以下代码可以更好地解释我想要的内容:

$('.tariffCostState').each(function(){
        var tariffCostObj = $(this).data('tariff-code-name');

/*
    How do I set the value of tariffCostObj as an object ?

[EDIT]
        Imagine that var tariffCostObj='abc';
        I want that abc becomes an object: abc={}
*/
        var testObj={};

        var tariffCostsInput=$(this).find('input.m2m-tariff-costs-input');

        for(var j= 0, inputLen = tariffCostsInput.length; j<inputLen; j++){
            var tariffCostsInputId = $(this).find('input.m2m-tariff-costs-input').eq(j).attr('id');
            var tariffCostsInputValue= $(this).find('input.m2m-tariff-costs-input').eq(j).val();

            testObj[tariffCostsInputId]=tariffCostsInputValue;

            //The goal is to have:
            abc[tariffCostsInputId]=tariffCostsInputValue;



        }
        console.log(testObj);

    });

而不是名为testObj的对象,我想要tariffCostObj的值(abc,...)testeObj只是一个例子

由于

2 个答案:

答案 0 :(得分:0)

不太清楚,但我认为你想这样做:

var testObj={};
$('.tariffCostState').each(function(){

    var tariffCostObj = $(this).data('tariff-code-name');

    if( 'undefined' === typeof testObj[ tariffCostObj ] ) 
         testObj[ tariffCostObj ] = {};

/*
How do I set the value of tariffCostObj as an object ?
*/


    var tariffCostsInput=$(this).find('input.m2m-tariff-costs-input');

    for(var j= 0, inputLen = tariffCostsInput.length; j<inputLen; j++){
        var tariffCostsInputId = $(this).find('input.m2m-tariff-costs-input').eq(j).attr('id');
        var tariffCostsInputValue= $(this).find('input.m2m-tariff-costs-input').eq(j).val();

       testObj[ tariffCostObj ][tariffCostsInputId]=tariffCostsInputValue;


    }
    console.log(testObj);

});

答案 1 :(得分:0)

这是你想要的吗?

var someObjName = "myObj";
var someObjPropName = "myProp";
var someObjPropValue = "myVal";

window[someObjName] = {};
window[someObjName][someObjPropName] = someObjPropValue;

现在你有了一个名为myObj的对象,其中包含一个属性和一个值。