代码之家  ›  专栏  ›  技术社区  ›  harunB10

用值创建json对象

  •  0
  • harunB10  · 技术社区  · 6 年前

    我有这些价值观:

    var firstHeader = $('#header0').text(); // 6KP
    var secondHeader = $('#header1').text(); // 7KP
    var thirdHeader = $('#header2').text(); // 8KP
    
    var first = $('#input0').val(); // 77
    var second = $('#input1').val(); //88
    var third = $('#input2').val(); // 99
    

    我需要创建一个json对象来实现这一点:

    {6KP:77, 7KP:88, 8KP:99}
    

    我试着这么做,但没有成功:

    var data = { firstHeader: first, secondHeader: second, thirdHeader: third };
    
    data = JSON.stringify(data, null, ' ');
    

    我的回答是:

    {firstHeader: 77, secondHeader:88, thirdHeader:99}
    

    如何将值替换为这些变量名?

    3 回复  |  直到 6 年前
        1
  •  5
  •   Dave Newton    6 年前

    使用数组表示法,例如,

    var data = {}; 
    data[firstHeader] = first;
    

    如果您使用ES6,您可以使用速记:

    var data = { 
      [firstHeader]: first, 
      // Etc.
    };
    
        2
  •  2
  •   Ankit Agarwal    6 年前

    您需要使用方括号将变量值作为键名计算:

    var data = {};
    data[firstHeader] = first;
    data[secondHeader] = second;
    data[thirdHeader] = third;
    

    工作实例

    var firstHeader = '6KP';
    var secondHeader = '7KP';
    var thirdHeader = '8KP';
    
    var first = '77';
    var second = '88';
    var third = '99';
    var data = {};
    data[firstHeader] = first;
    data[secondHeader] = second;
    data[thirdHeader] = third;
    console.log(JSON.stringify(data));
        3
  •  1
  •   Manoj    6 年前

    替换下线

    var data = { firstHeader: first, secondHeader: second, thirdHeader: third };
    

    具有

    var data ={};
    
    data[firstHeader]= first;
    data[secondHeader]= second;
    data[thirdHeader]: third ;